3

У меня есть две машины клиента, $gateway и $server , вторая доступна только с первой. Аутентификация с открытым ключом недоступна в обеих системах. Итак, чтобы выполнить некоторую $command на сервере, мне нужно запустить ssh $gateway ssh $server $command и затем ввести два пароля. Я могу использовать sshpass , но он будет обрабатывать только первое соединение, и мне все еще нужно будет ввести второй пароль вручную.

Как сделать полностью неинтерактивный (без ручного ввода паролей) ssh доступ к серверу?

Единственный способ, которым я вижу, - это использовать туннели, но их трудно поддерживать в живых из-за нестабильной интернет-связи.

1 ответ1

4

Пытаться:

ssh -oProxyCommand="ssh -W %h:%p $gateway" $server command

Например:

ssh -oProxyCommand="ssh -W %h:%p albert@gateway.uibk.ac.at" root@hidden.uibk.ac.at command

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

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