提示输入密码

提示输入密码

// 开始编辑

我现在应该注意到,我已经进行了一些修改,如果我在从“自动化”连接时使用“-iidentity_file”开关并将其指向“自动化”上的私钥,那么一切都会按预期工作。

// 结束编辑

这里涉及三个系统。

1)生产

2)工作站

3)自动化

2 号和 3 号在同一个网络上,1 号在远程网络上。3 号没有连接监视器,而是通过 2 号的 SSH 进行管理。

现在 #2 有了可用的公钥/私钥,并且能够无需密码顺利连接到 #1 和 #3。

我需要以同样的方式从 #3 连接到 #1。我首先尝试将 #2 用于 #1 的密钥复制到 #3。当我尝试从 #3 连接到 #1 时,系统提示我输入密码。我登录 #3 时使用了 ssh-keygen,并将这些密钥导入 #1,就像我设置 #2 连接到 #1 时所做的那样。系统仍然提示我输入密码。

为什么从 #3 连接时会提示我输入密码,而从 #2 连接时却不会?

我能想到的唯一区别是,当从#3 连接时,我已经从#2 远程登录到#3。

答案1

如果您使用 OpenSSH,请按照 Zoredache 的建议进行操作:


在 中machine-1,启动 SSH 代理(如果尚未运行;例如,GNOME 会自动启动一个):

一$ eval $(ssh-agent)
代理 pid

将您的密钥加载到代理中:(同样,GNOMEgnome-keyring会自动执行此操作;用于ssh-add -l列出所有密钥。)

一$ ssh-add
输入 /home/grawity/.ssh/id_rsa 的密码:******

一$ ssh-add -l 4096 11:83:7a:39:74:9d:75:e6:90:35:34:23:f5:d7:6b:6a /home/grawity/.ssh/id_rsa


连接到machine-2,并启用代理转发:

一$ ssh -A machine-2

连接后,验证代理转发是否有效:

二$ ssh-add -l
4096 11:83:7a:39:74:9d:75:e6:90:35:34:23:f5:d7:6b:6a /home/grawity/.ssh/id_rsa

如果有效,则从 连接到machine-2machine-3然后返回到machine-1

两$ ssh -A machine-3

三$ ssh -A machine-1

一$ _

如果一切顺利,请编辑~/.ssh/config并添加:

主机-1 机器-2 机器-3
    AgentForwarding 是

答案2

您最初的问题似乎是询问如何使用 ssh 访问多个系统,我给出了建议使用 ssh-agent 的答案(如下)。阅读您的评论后,我知道您遇到了不同的问题。

在您的问题中,您提到您将私钥和公钥从工作站复制到另一台计算机,以供您尝试自动化的服务使用。这是馊主意. SSH 密钥应该真正标识单个用户或单个服务。 私钥不应共享您与另一个系统上的服务帐户之间。您应该已经在服务器上创建了一组新密钥。

我猜测您遇到连接问题的最可能原因与您如何将密钥从工作站复制到其他系统有关。 OpenSSH 对于密钥的所有权和权限非常挑剔。 私钥应由使用它的用户拥有,并且应具有 0600 的权限。如果密钥可由组/其他人读取,则 ssh 将拒绝使用它。如果您在尝试连接时为 ssh 提供 -v 选项,您将看到有关密钥权限的投诉。

所以我的建议是为服务帐户生成一组新密钥在您的自动化主机上,然后将公钥传输到另一台服务器。


由于听起来你信任这些系统,并且你所有的连接都是从工作站最初创建的,因此你可以简单地启动一个SSH 代理在您的工作站上,将您的密钥添加到代理并在所有主机上的客户端配置中启用代理转发。

相关内容