Просто для ясности: ошибка, которую я получаю, не связана с разрешениями файлов ssh. Я не получаю ошибку, связанную с разрешениями.
У меня есть следующий файл ~/.ssh/config
Host git-codecommit.*.amazonaws.com
User APKAIxxxxxxxxxxxxxxx
IdentityFile ~/.ssh/id_rsa
Файлы config и id_rsa имеют следующие разрешения
-rw------- 1 jmsanzg jmsanzg 93 jun 24 16:23 config
-rw------- 1 jmsanzg jmsanzg 1679 abr 26 2015 id_rsa
-rw-r--r-- 1 jmsanzg jmsanzg 396 abr 26 2015 id_rsa.pub
Каталог .ssh имеет следующие разрешения
drwx------ 2 jmsanzg jmsanzg 4096 jun 24 16:23 .ssh
Если я запускаю ssh, заставляя его использовать сертификат, то это работает
jmsanzg@jmsanz:~$ ssh -i ~/.ssh/id_rsa [email protected]
You have successfully authenticated over SSH. You can use Git to interact with AWS CodeCommit. Interactive shells are not supported.Connection to git-codecommit.us-east-2.amazonaws.com closed by remote host.
Connection to git-codecommit.us-east-2.amazonaws.com closed.
Но всякий раз, когда я пытаюсь запустить его напрямую, используя файл конфигурации, он терпит неудачу.
jmsanzg@jmsanz:~$ ssh git-codecommit.us-east-2.amazonaws.com
Permission denied (publickey).
Также, если я устанавливаю пользователя, просто пытаюсь выяснить, почему он терпит неудачу, ну, он тоже терпит неудачу.
jmsanzg@jmsanz:~$ ssh [email protected]
Permission denied (publickey).
Это сводит меня с ума, потому что это работало как по маслу с 2015 года, а вчера внезапно перестало работать, не внося (я так думаю) никаких изменений. Я пробовал параметр -v на обоих, и не вижу никакой особой разницы. В самом конце командная строка предлагает открытый ключ RSA
debug1: Authentications that can continue: publickey
debug1: Offering RSA public key: /home/jmsanzg/.ssh/id_rsa
debug1: Server accepts key: pkalg rsa-sha2-256 blen 279
debug1: Authentication succeeded (publickey).
в то время как другая командная строка, которая должна использовать файл конфигурации, не предлагает файл /home/jmsanzg/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).
РЕДАКТИРОВАТЬ Чтобы сделать вещи более интересными. Я скопировал файлы config, id_rsa и id_rsa.pub на другой компьютер. Дал те же разрешения и... они работают в обоих направлениях, с использованием config и с полной командной строкой.
решение1
У меня была та же проблема, ec2 и все такое. При запуске ssh host-name -v
я получал connection timed out
. Я пробовал:
- открытие разрешений на входящий ec2 ssh
- открытие прав доступа chmod для .pem (нельзя этого сделать, должно быть 400)
- упрощение имени ключа
Наконец, я только что дважды проверил HostName, и это был неправильный экземпляр ec2. Кроме того, есть несколько расположений .ssh/config:
- /etc/ssh/ssh_config
- ~/.ssh/config
У меня теперь все работает с правильным экземпляром ec2:
- cwd = ~
- расположение конфигурации = ~/.ssh/config
- файл конфигурации
Host terraria
HostName "###-###-##-##-###.compute-1.amazonaws.com"
User ubuntu
IdentityFile ~/.ssh/"Terraria Key.pem"
ssh terraria