Запрос на ввод пароля

// Начать редактирование

Теперь я должен заметить, что я немного повозился, что все работает, как задумано, если я использую переключатель "-i identity_file" при подключении из "Автоматизации" и указываю на закрытый ключ на "Автоматизации".

// Конец редактирования

Здесь задействованы три системы.

1) Производство

2) Рабочая станция

3) Автоматизация

Номера 2 и 3 находятся в одной сети, № 1 - в удаленной сети. # 3 не имеет подключенного монитора, он управляется через SSH из #2.

Теперь # 2 имеет открытые / закрытые ключи и может подключаться к #1 и # 3 без пароля.

Мне нужно подключиться к #1 из # 3 таким же образом. Сначала я попытался скопировать ключи № 2 для № 1 в № 3. При попытке подключиться к № 1 из № 3 мне предлагается ввести пароль. Я использовал ssh-keygen при входе в # 3 и импортировал эти ключи в #1 так же, как и при настройке # 2 для подключения к #1. Мне все еще предлагают пароль.

Почему при подключении от № 3 меня просят ввести пароль, а не для № 2?

Единственное отличие, о котором я могу подумать, это то, что при подключении из # 3 я уже удаленно вошел в # 3 из #2.

2 ответа

Если вы используете OpenSSH, вот как вы делаете то, что предложил Zoredache:


В machine-1, запустите агент SSH (если он еще не запущен; например, GNOME запускает его автоматически):

 один $ eval $(ssh-agent)
Агент Пид 

Загрузите свой ключ в агент: (опять же, GNOME gnome-keyring делает это автоматически; использование ssh-add -l перечислить все ключи.)

 один $ ssh-add
Введите кодовую фразу для /home/grawity/.ssh/id_rsa: ******

один $ ssh-add -l 4096 11:83:7a:39:74:9d:75:e6:90:35:34:23:f5:d7:6b:6a /home/grawity/.ssh/id_rsa


Присоединиться machine-2 с включенной переадресацией агента:

 один $ ssh -A машина-2 

После подключения убедитесь, что переадресация агента работает:

 два $ ssh-add -l
4096 11:83:7a:39:74:9d:75:e6:90:35:34:23:f5:d7:6b:6a /home/grawity/.ssh/id_rsa 

И если это работает, подключиться с machine-2 в machine-3, а затем вернуться к machine-1:

 два $ ssh -a машина-3

три $ ssh -a машина-1

один $ _ 

Если все работало, отредактируйте ~/.ssh/config и добавить:

 Принимающая машина-1, машина-2, машина-3
    AgentForwarding да 

Ваш первоначальный вопрос, по-видимому, касался доступа к нескольким системам друг от друга с использованием вашего ssh, и я предоставил ответ, предлагающий ssh-agent (ниже). Прочитав ваши комментарии, я понимаю, что у вас возникла другая проблема.

В своем вопросе вы упомянули, что скопировали закрытый и открытый ключи со своей рабочей станции на другой компьютер, который будет использоваться службой, которую вы пытаетесь автоматизировать. Это плохая идея. Ключи SSH должны действительно идентифицировать одного пользователя или один сервис. Закрытые ключи не должны передаваться между вами и служебной учетной записью в другой системе. Вы должны были создать новый набор ключей на вашем сервере.

Я предполагаю, что наиболее вероятная причина, по которой у вас возникают проблемы с подключением, связана с тем, как вы скопировали ключи со своей рабочей станции в другую систему. OpenSSH очень требователен к владению и разрешению ключей. Закрытый ключ должен принадлежать пользователю, использующему его, и иметь права доступа 0600. Если ключ доступен для чтения группе / другому, то ssh откажется его использовать. Если вы укажете опцию -v для ssh при попытке подключения, вы увидите жалобу о разрешениях ключа.

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


Поскольку кажется, что вы доверяете этим системам, и все ваши соединения изначально создаются с рабочей станции, вы можете просто запустить агент SSH на своей рабочей станции, добавить свой ключ к agenct и включить переадресацию агента в конфигурации клиента на всех ваших хостах.

Другие вопросы по тегам