我正在尝试实现/测试 SSH 转发,但到目前为止,唯一能使其工作的方法是手动将公钥(ssh-rsa xxxx)复制到我想要通过 SSH 连接的每台机器上。
假设我有:
我的工作站有 Putty 和 Pageant,并且我有一个导入到 Pageant 的 PPK 以及相应的公钥。
CENTOS1 - 已运行 ssh-agent,并且 sshd_config 和 ssh_config 的“Forwarding”参数设置为“yes”
CENTOS2 - 已运行 ssh-agent,且 sshd_config 和 ssh_config 的“Forwarding”参数设置为“yes”
然后,我使用Putty连接到CENTOS1并且可以进入CENTOS1。
但是,如果我从 CENTOS1 尝试“ssh myself@CENTOS2”,我无法进入并收到“权限被拒绝”的提示。
但是,如果我将公钥复制到 CENTOS2 上的 authorized_keys,那么,当我在 CENTOS1 上时,我就可以“ssh myself@CENTOS2”了。
我认为,通过在 CENTOS1 和 CENTOS2 上运行 ssh-agents,并在我的工作站上运行 Pageant 并将 PPK 加载到 Pageant 中,我应该能够通过 Putty 连接到 CENTOS1,然后从 CENTOS1,我应该能够通过 SSH 连接到 CENTOS2,而不必手动将公钥复制到 CENTOS1 或 CENTOS2?
我认为这就是使用 ssh-agent 和 Pageant 的目的(避免必须将公钥复制到目标机器)?
或者使用 ssh-agent 和 Pageant 只是为了避免将私钥复制到目标机器?
谢谢,吉姆
答案1
我认为这就是使用 ssh-agent 和 Pageant 的目的(避免必须将公钥复制到目标机器)?
不。代理转发的目的不是必须复制私人的钥匙。
如果目标服务器不知道你的公钥,这怎么可能行得通呢?它永远无法确认你的身份。