我正在编写一个脚本,该脚本需要能够访问具有有限访问权限的服务器。我希望通过另一台我有权访问的unix服务器来访问另一台计算机。
我可以从家里通过SSH连接到第二台机器,因为我生成了一个SSH密钥并使用了ssh-copy-id。当我身在第二台机器上时,我可以用相同的方式SSH进入第三个,而不会被提示输入密码。
然而,当我通过SSH连接到第二个,然后尝试SSH进入第三个时,我被提示输入密码和第三台计算机的密码。
为什么会发生这种情况,如何停止此提示?
编辑:澄清一些观点。
图
Machine A : Home machine, root access
| SSH (passwordless)
v
Machine B : Publicly accessible server, no root permissions
| SSH (passwordless while physically logged in,
| password prompted while at machine A SSHed into machine B)
v
Machine C : Only accessable on campus
(which B is and A is not), no root permissions
答案 0 :(得分:2)
你提到能够从1日进入第2台机器,从1日到2日进入。因此,如果链中有第3台机器,您需要在第3台机器上设置SSH密钥,或者从您提到的第3台机器上获取公钥。
另一个好的建议是使用详细/调试(-v
)选项手动运行SSH,这样您就可以准确地看到每一步发生的事情。
-v Verbose mode. Causes ssh to print debugging messages about its
progress. This is helpful in debugging connection, authentica-
tion, and configuration problems. Multiple -v options increase
the verbosity. The maximum is 3.
过去,通过向我展示登录过程的流程和方式,这给我带来了很多麻烦。究竟是什么堵塞了它。
因此,如果您的第3台机器被命名为machine3.local
,那么使用详细模式的ssh命令将是:
ssh -v machine3.local
编辑:原始海报说他正在被要求为第三台机器生成的密钥使用密码。如果是这样的话,那就是问题所在。如果您想要无密码访问,则无法在SSH密钥上使用密码。
另一个编辑:另外,请确保他们拥有与以下内容相符的权限。由尝试访问的帐户拥有,如此示例所示:
-rw------- [username] [usergroup] authorized_keys
-rw------- [username] [usergroup] id_rsa
-rw-r--r-- [username] [usergroup] id_rsa.pub
-rw-r--r-- [username] [usergroup] known_hosts
答案 1 :(得分:0)
检查第二台计算机是否以root用户身份登录 如果是这样,那么你必须像为用户一样创建ssh密钥 基本上,当您再次以root用户身份登录时,即使您已为用户创建了ssh密钥,也必须创建ssh密钥。