Как мне написать скрипт для ssh на компьютер с удаленного компьютера?
-
05-07-2019 - |
Вопрос
Мне часто нужно подключиться по ssh к серверу, но я не могу подключиться к нему напрямую, пока я подключен к нашей VPN. Таким образом, я должен подключиться к другому серверу и подключиться к нему оттуда. Могу ли я написать скрипт и / или функцию оболочки для этого? Я пробовал это, но это дало мне ошибку:
% ssh jason@server2 'ssh jason@server1'
jason@server2's password:
Pseudo-terminal will not be allocated because stdin is not a terminal.
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-with-mic,password).
(и, конечно, имя пользователя и имя сервера были изменены)
Решение
Стекирование SSH-соединения может вам помочь. Предполагая следующий макет: Клиент - > Посредник - > Пункт назначения
На клиенте:
ssh user@Middleman -L 1337:Destination:22
Это позволит вам напрямую подключаться по SSH к пункту назначения от клиента в другом сеансе:
На клиенте:
ssh user@localhost -p 1337
Команда выполняется так, как если бы вы ввели ssh user @ Destination . Вы можете направить stdin к нему так, как если бы вы были к нему подключены напрямую.
Другие советы
Невозможно отобразить запрос пароля. Я думаю, что все будут работать с открытыми ключами (и, например, с переадресованным ssh-agent, чтобы исключить необходимость ввода ключевых парольных фраз).
Похоже, вы хотите настроить аутентификацию с открытым ключом между промежуточным и конечным компьютерами. Р>
Вот пара приличных руководств, с которых можно начать. Удачи.
http://hkn.eecs.berkeley.edu/~dhsu/ssh_public_key_howto .html р>
Из того, что я вижу, проблема в том, что ssh на средней машине не может получить стандартный ввод. Я думаю, что просто хочу спросить ваш пароль. Если это правда, возможно, вам следует попытаться настроить ключ ssh, чтобы вы могли использовать ssh без пароля. ПРИМЕЧАНИЕ. В этом случае лучше создать нового пользователя на промежуточном компьютере, чтобы сохранить этот ключ в качестве меры безопасности.