![如何通过 ssh 别名进行无密码登录](https://linux22.com/image/30447/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20ssh%20%E5%88%AB%E5%90%8D%E8%BF%9B%E8%A1%8C%E6%97%A0%E5%AF%86%E7%A0%81%E7%99%BB%E5%BD%95.png)
假设我可以pc
通过server
.我可以直接pc
使用如何使用 ssh 通过另一台电脑连接到另一台电脑
这样我的.ssh/config
看起来像:
Host short
Hostname pc
User me
ProxyCommand ssh me@server nc %h %p
pc
和上的用户和主文件夹server
相同,但server
只能从外部直接访问。现在,如果我ssh short
,我必须输入相同的密码两次。
我现在正在寻找一种使用隧道登录的方法,甚至不需要输入密码一次。
我已经尝试过该ssh-keygen
过程,但这对我没有帮助。我还发现了这个非常相关的问题:设置从 NAT 后面的家庭计算机到网关后面的内部计算机的无密码 SSH 隧道,但我不知道这如何适用于我的情况。
问题基本上归结为:如何通过 ssh 别名设置无密码登录?
答案1
您需要在两台机器上设置密钥身份验证,即反弹机器 ( server
) 和目标机器 ( pc
)。
ssh-keygen
如果您还没有这样做,请在您的客户端计算机上创建密钥对 ( )。然后将公钥复制server
并添加到授权列表中。然后对 做同样的事情pc
。
ssh-copy-id server
ssh-copy-id short
为了避免输入密码两次,请运行密钥代理。许多系统都设置为在您登录时运行:检查是否SSH_AUTH_SOCK
设置了环境变量。如果不是,请ssh-agent
作为会话启动的一部分运行。在登录会话中开始使用 ssh 之前,请通过运行在代理中记录您的密码ssh-add ~/.ssh/id_rsa
。