Очевидная альтернатива подходу ProxyCommand, представленная мной в другом ответе, будет «прыгать» непосредственно на целевую машину:
ssh -t user@machineB ssh user@machineA
Обратите внимание на -t в первой команде ssh. Без этого он будет терпеть неудачу:
Pseudo-terminal will not be allocated because stdin is not a terminal.
ssh_askpass: exec(/usr/bin/ssh-askpass): No such file or directory
Permission denied, please try again.
[...]
Это заставит реальный TTY быть выделенным
. Недостатком этого является то, что теперь вся конфигурация, проверка и аутентификация происходит на Machine B , что мне действительно не нравится в моей ситуации по соображениям безопасности. Мне нравится моя ключевая пара на моем собственном компьютере, а также проверять и проверять конечную целевую машину на моем собственном компьютере. Кроме того, вы можете использовать только интерактивную оболочку для SSH, поэтому это не будет иметь дело с другими инструментами, такими как SCP или с вашим файловым менеджером графического интерфейса.
По всем вышеперечисленным причинам я настоятельно рекомендую ответ , но для быстрого подключения это прекрасно работает.