1

Я пытаюсь использовать SSH от одной капли Digital Ocean до второй капли.

Вот моя установка:

Настройка и настройка

  • Капелька 1: MyTest (Ubuntu 16,04 512 МБ ОЗУ)
  • Капля 2: RemoteHost (Ubuntu 16,04 512 МБ ОЗУ)
  • Локальная система (Windows 7 с Putty, PuttyGen)

На основании инструкции в видео здесь, я использовал PuTTYgen для создания государственно-частного ключа пары на моей локальной системы (Windows 7). Я не сохранил открытый ключ. Я сохранил закрытый ключ в своей локальной системе (Windows 7). Я добавил открытый ключ к капле MyTest. Теперь я могу использовать Putty для SSH из моей локальной системы (Windows 7) в MyTest без пароля, как показано на видео.

проблема

Теперь я хотел бы использовать SSH из капли MyTest в капле RemoteHost.

Шаг 1.

Я создал дроплет RemoteHost и прикрепил тот же открытый ключ, что и для MyTest. Итак, обе капли MyTest и RemoteHost имеют одинаковый открытый ключ.

Шаг 2.

Со своей локальной машины (Winsows 7) я использовал PuTTy для SSH в капле MyTest.

Шаг 3.

Затем (из командной строки капли MyTest) я попытался выполнить SSH в каплю RemoteHost с помощью следующего:

root@MyTest:~# ssh root@123.456.789.10

После этого я получаю следующее сообщение об ошибке

root@MyTest:~# ssh root@xxx
The authenticity of host 'xxx (xxx)' can't be established.
ECDSA key fingerprint is SHA256:yyy.
Are you sure you want to continue connecting (yes/no)?

Я также показываю ошибку на скриншоте выше.

Вопрос:

Возможно ли SSH из одной капли Digital Ocean в другую каплю Digital Ocean?

2 ответа2

3

Да, но вы должны поместить копию своего закрытого ключа в MyTest. Клиент SSH на MyTest не может прочитать ваш закрытый ключ на вашем ПК.

Тем не менее, вы должны действительно использовать другую пару ключей для подключения от MyTest к RemoteHost, потому что закрытый ключ, который вы положили на MyTest, может быть скопирован любым, кто имеет доступ к этой системе (люди, с которыми вы используете общий доступ к серверу, возможно, сотрудники DO). .) и используется для доступа к другим системам, к которым вы обращаетесь с помощью этого ключа. Итак, в MyTest сгенерируйте вторую пару ключей и скопируйте ее открытый ключ в RemoteHost (который будет иметь два открытых ключа: один из пары вашего ПК и один из пары MyTest). Затем вы можете подключиться к RemoteHost напрямую с вашего ПК (используя локальный закрытый ключ) или из MyTest (используя закрытый ключ MyTest).

0

Ответ @xenoid сработал! Я решил использовать другую пару открытый-закрытый ключ для подключения MyTest к RemoteHost.

Вот что я должен был сделать (ручной подход с использованием этих источников - здесь и шаг 4 отсюда), чтобы следовать предложению @ xenoid:

На 1-й капельке (MyTest)

1.

root@MyTest:~# ssh-keygen -t rsa -N '' -f keyfilename.rsa
root@MyTest:~# cat ~/keyfilename.rsa.pub

Первая строка генерирует пару ключей без пароля. Вторая строка отображает содержимое файла ключа PUBLIC.

2. Выделите все символы в файле ключа PUBLIC (используя курсор мыши) и нажмите Ctrl+C, чтобы скопировать ключ PUBLIC.

3.

root@MyTest:~# exit

На 2-й капельке (RemoteHost)

1.

root@RemoteHost:~# chmod 700 ~/.ssh
root@RemoteHost:~# chmod 600 ~/.ssh/authorized_keys
root@RemoteHost:~# nano ~/.ssh/authorized_keys

Этот файл уже содержит ключ PUBLIC для пары публичный-частный, сгенерированный с моего локального компьютера и добавленный в дроплет при его создании.

2. Используйте нано-редактор, чтобы вставить ключ PUBLIC. Нажмите Enter, чтобы начать новую строку в этом файле

3. Нажмите Ctrl+V, чтобы вставить ЧАСТНУЮ клавишу

4. Нажмите Ctrl + X, y, Enter, чтобы сохранить и выйти с тем же именем файла

5.

root@RemoteHost:~# exit

В клиенте Ubuntu (AnsibleFlex)

1.

root@MyTest:~# ssh root@123.456.789.10 -i ~/keyfilename.rsa

где 123.456.789.10 - публичный IP-адрес RemoteHost. При необходимости открывается приглашение SSH в каталоге /root на RemoteHost.

Спасибо @xenoid!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .