Экземпляр частной подсети VPC Amazon Web Service (AWS) «Отказано в доступе (открытый ключ)» - ssh из osx

Экземпляр частной подсети VPC Amazon Web Service (AWS) «Отказано в доступе (открытый ключ)» - ssh из osx

Я подключаюсь к экземпляру Amazon Web Service (AWS) EC2 в частной подсети виртуального частного сервера через экземпляр NAT и получаю следующую ошибку:

Отказано в доступе (открытый ключ)

Это произошло после того, как я подключился к NAT и попытался подключиться по SSH к экземпляру EC2 частной подсети.

Процедура:

  1. Определите хост ~/.ssh/configследующим образом:

    Host my_aws_nat
    Hostname xx.xx.xx.xx
    User ec2-user
    IdentityFile /location/of/my/aws/key_pair.pem
    ForwardAgent yes
    
  2. SSH к экземпляру NAT через ssh my_aws_nat(что успешно)

  3. SSH-подключение к экземпляру в частной подсети — вот тогда я и получаю ошибкуssh [email protected]

Я могу пинговать свой частный экземпляр из моего NAT с помощью ping 10.0.X.X. Так что я почти уверен, что это не проблема групп безопасности. Похоже, что это проблема переадресации агента.

В настоящее время экземпляр, к которому я подключаюсь, использует ту же пару ключей, что и экземпляр NAT (в режиме обучения).

Другой способ, который я попробовал, — это подключиться к NAT с помощью:

ssh -A [email protected] -i key_pair.pem

Который снова правильно подключается к NAT, но выдает ту же ошибку при подключении к частному экземпляру.

Обязательно ли использовать ssh-agentMac OS X?

Или указание не должно ForwardAgent yesделать /.ssh/configто же самое?

решение1

Согласноэтотответ иэто руководство

Мне нужно было добавить key_pair.pemв OSX ssh-агент следующим образом:

ssh-add -K /path/to/key_pair.pem

(в моем случае пароль не запрашивался)

После этого все заработало нормально при использовании обеих описанных выше методик.

Итак, отвечая на вопрос:

В: Необходимо ли использовать ssh-agent в Mac OS X для входа в частный экземпляр подсети через NAT/хост-бастион?
А: ДА

решение2

Мне помогло удаление открытого ключа бастиона (экземпляра NAT) из ~/.ssh/known_hosts. Если ключ удаленного хоста бастиона изменился (что может случаться довольно часто, если вы выделяете EIP новым экземплярам) и, кроме того, установили StrictHostKeyChecking noв своем ssh_config, AgentForwarding будет отключен на хосте бастиона. Вы также найдете предупреждение, говорящее об этом, если вы войдете на хост бастиона. Что касается меня, я просто не читал его -.-

Итак, удалите ключ и подключитесь снова, текущий ключ будет добавлен в файл known_hosts, и вы сможете подключиться к экземпляру в частной подсети.

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