
Я ищу ssh с моего локального хоста на удаленный сервер, а оттуда на удаленный компьютер. В настоящее время я настроил его так, что удаленный компьютер и удаленный сервер имеют беспарольный ssh-ing между ними, но если я ssh с моего локального хоста на сервер, а затем пытаюсь ssh на компьютер оттуда, я получаю:
Enter passphrase for key '/home/user/.ssh/id_dsa':
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,keyboard-interactive).
Если я пытаюсь подключиться по ssh с терминала, открытого на удаленном сервере, к удаленному компьютеру, все работает нормально. Это как-то связано с тем, что мой дисплей не :0.0
, или с чем-то еще? Я пытался, xhost +local:
но заблудился.
Спасибо
решение1
Если обе системы имеют открытый ключ вашей локальной системы, используйте -A
.
Отssh(1)
-A Enables forwarding of the authentication agent connection. This can also be specified on a per-host basis in a configuration file.
Также обратите внимание на это предупреждение:
Agent forwarding should be enabled with caution. Users with the ability to bypass file permissions on the remote host (for the agent's UNIX-domain socket) can access the local agent through the forwarded connection. An attacker cannot obtain key material from the agent, however they can perform operations on the keys that enable them to authenticate using the identities loaded into the agent.
В результате при аутентификации на втором хосте аутентификация перенаправляется обратно на хост, где вы физически находитесь.
Пример:
me@host0:~ $ ssh -A host1
Last login: Thu Jun 14 11:31:53 2012 from 2001:db8::b0
me@host1:~ $ ssh -A host2
Last login: Thu Jun 14 11:41:05 2012 from 2001:db8::b1
me@host3:~ $ ssh -A host3
Last login: Tue Jun 12 10:46:50 2012 from 2001:db8::b2
me@host3:~ $
решение2
Ваш агент не может передать аутентификацию на удаленный компьютер. Вы можете перенаправить порт для подключения напрямую к удаленной машине, если хотите.
Видетьэта статья о SSH multi-hopи перейти к разделу оProxyCommand
в ~/.ssh/config
:
Host remotecomputername
ProxyCommand ssh -q remoteservername nc -q0 remotecomputername 22