Как ssh из одного экземпляра ec2 в другой?

7591
Stephen Walsh

Я создал два экземпляра EC2 на AWS. Я создал пару ключей для каждого из них. Я скачал закрытые ключи .pem и преобразовал их в .ppkформат. Я могу подключиться к каждому из моих экземпляров ec2, используя PuTTY и их закрытый ключ .ppk. Но как мне получить SSH от одного экземпляра ec2 к другому? Я могу пропинговать Public DNS одного из них от другого. Но если я попробую ssh от одного к другому, я получу:

В доступе отказано (publickey).

1
установите эти ключи в свои пары ключей (только публичная половина). запустить 2 новых экземпляра с каждой из этих пар ключей. загрузить все (в частности, частную половину) в качестве назначенного клиента (например, для ключа A он используется для запуска экземпляра B, а его частная половина загружена в экземпляр A). Skaperen 7 лет назад 0
Я думаю, что вам может понадобиться преобразовать ключи в формат openssh: http://stackoverflow.com/questions/2224066/how-to-convert-ssh-keypairs-generated-using-puttygenwindows-into-key-pairs-use# 2224204 matiu 7 лет назад 0

2 ответа на вопрос

4
matiu

Способ 1 - использовать те же ключи на серверах:

Преобразуйте ключи в формат openssh и загрузите закрытые ключи на серверы. Когда вы отправляетесь по ssh на хост назначения, укажите файл закрытого ключа:

ssh -i mykey.pem private.ip.of.other.server 

Способ 2 - Создание новых ключей

На каждом сервере запускаем:

ssh-keygen 

Нажмите Enter, введите Enter. У вас будет два файла:

.ssh/id_rsa .ssh/id_rsa.pub 

На сервере A кошка и скопировать в буфер обмена открытый ключ:

cat ~/.ssh/id_rsa.pub [select and copy to your clipboard] 

SSH на сервер B, и добавьте содержимое этого файла в его авторизованный файл:

cat >> ~/.ssh/authorized_keys [paste your clipboard contents] [ctrl+d to exit] 

Теперь SSH с сервера A:

ssh -i ~/.ssh/id_rsa private.ip.of.other.server 
Спасибо за такое простое и понятное объяснение! Это сработало отлично. raphael75 7 лет назад 0
3
Robert Lujo

Существует 3-е и ИМХО лучшее решение так называемой пересылки по ssh агенту :

  • на локальной машине настройте ~ / .ssh / config, добавив следующий раздел:
Host <ip-or-name-of-A-server> ForwardAgent yes 
  • Я предполагаю, что на сервере A и B ваш локальный файл ~ / .ssh / id_rsa.pub добавлен в ~ / .ssh / authorized_keys сервера

Во время работы на сервере A ваши ключи могут быть использованы для дальнейшего общения по ssh - например:

  • подключение к другому серверу с помощью ssh-клиента - в данном случае к серверу B,
  • scp (защищенная копия),
  • git - вы можете использовать локальную идентификацию в своих удаленных репозиториях git
  • и т.п.

Чтобы проверить, работает ли это:

  • подключиться к серверу A
  • проверьте, есть ли сокетное соединение для обмена ключами, обнаружив SSH_AUTH_SOCK env var:
set|grep SSH_AUTH_ # output should be something like this: SSH_AUTH_SOCK=/tmp/ssh-sEHiRF4hls/agent.12042 

Заметки:

Вам также необходимо убедиться, что у группы безопасности есть правило для входящего порта 22 (SSH) с вашей подсетью EC2 в качестве источника. weston 5 лет назад 0