ssh с конфигурацией не работает, но ssh с полной командной строкой работает

ssh с конфигурацией не работает, но ssh с полной командной строкой работает

Просто для ясности: ошибка, которую я получаю, не связана с разрешениями файлов 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

Связанный контент