无需密码的两步远程ssh

我的目标是从我的本地主机 ssh 到远程服务器,以及从那里到远程计算机。 我目前已经设置好了,以便远程计算机系统和远程服务器在它们之间设置无密码 ssh,但是如果我从我的 localhost 直接 ssh 到 Web 服务器,然后尝试从 ssh 到计算机系统在那里,我得到:

Enter passphrase for key '/home/user/.ssh/id_dsa': 
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,keyboard-interactive).

如果我尝试从远程 Web 服务器上打开的终端 ssh 到远程计算机,它工作得很好。 这是否与我的显示不是 :0.0 或完全其他事情有关? 我已经尝试过 xhost +local: ,但已经过去了。

谢谢

4
2022-06-07 14:39:44
资源 分享
答案: 2

如果两个系统都有您的邻居系统的通用公钥,请使用 -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.

结果是,当您与第二台主机进行身份验证时,身份验证将完全发送回您实际居住的主机。

例子:

[email protected]:~ $ ssh -A host1
Last login: Thu Jun 14 11:31:53 2012 from 2001:db8::b0
[email protected]:~ $ ssh -A host2
Last login: Thu Jun 14 11:41:05 2012 from 2001:db8::b1
[email protected]:~ $ ssh -A host3
Last login: Tue Jun 12 10:46:50 2012 from 2001:db8::b2
[email protected]:~ $ 
3
2022-06-07 15:11:42
资源

您的代理无法通过远程计算机系统上的身份验证。 如果您愿意,您可以移植一个链接以直接连接到远程设备。

请参阅 这篇关于 SSH 多跳的文章 并跳至有关 ProxyCommand 的部分

~/.ssh/config 中:

Host remotecomputername
  ProxyCommand ssh -q remoteservername nc -q0 remotecomputername 22
1
2022-06-07 15:09:24
资源