Я пытаюсь выполнить ssh multihop с моей локальной машины на сервер под названием кластер, используя промежуточный сервер под названием merlot. Согласно http://sshmenu.sourceforge.net/articles/transparent-mulithop.html, вот как я сделал свой ~ / .ssh / config:
Host merlot
HostName merlot.stat.uconn.edu
User vdeshpande
Host cluster
HostName stats.phys.uconn.edu
User vdeshpande
ProxyCommand ssh -q merlot nc -q0 cluster 22
Когда я печатаю ssh cluster
в терминал мне предлагается ввести пароль мерло. После того, как я ввожу его, я получаю такую ошибку:
cluster: forward host lookup failed: Unknown host
ssh_exchange_identification: Connection closed by remote host
Как это исправить? Я проверил, что nc установлен. Кроме того, я могу использовать ssh для merlot, а затем ssh для кластера.
У вас неверная команда ProxyCommand. Есть два способа справиться с этим:
Предпочтительный способ - использовать собственный переключатель openssh -w
:
ProxyCommand ssh -W %h:%p proxy
Версия netcat выглядит так:
ProxyCommand ssh -q proxy nc %h %p
Вы не можете использовать свои псевдонимы в удаленной команде netcat, потому что она их не знает. Отличный гид - замены %h
, какой HostName
Вы указали выше.
Итак, для вас:
ProxyCommand ssh -q merlot nc -q0 %h 22