将私钥添加到ssh代理

5

我指的是http://www.mtu.net/~engstrom/ssh-agent.php

我的公钥位于远程服务器1的~/.ssh/authorized_keys下。在SSH登录连接期间,它可以正常工作(在连接-身份验证下加载了我的私钥),它会要求我提供口令,然后登录成功。但是当从远程服务器2切换到远程服务器1时,它会要求输入密码。尝试按照该网站设置SSH代理转发,但没有成功... ssh-add从未提示我输入私钥口令,或者我所做的是错误的,试图按照所描述的过程进行操作?

我基本上执行了以下操作: $ eval ssh-agent $ ssh-add(有些人执行ssh-add ~/.ssh/id_rsa-->不知道id_rsa指的是什么,因为我只有.ssh下的auth_keys文件)

看到一些资源描述需要执行chmod 600 ~/.ssh/authorized_keys,但不确定是否适用于我的情况。


这个问题与编程无关,不属于本主题。 - Eugene Mayevski 'Callback
我猜我有点通过Putty的Pageant解决了它 - 添加密钥(添加私钥和输入密码短语),然后连接到保存的远程会话。当我运行ssh-add -L/-l时,显示了一些内容。 只是当我从其他远程服务器连接到它时,它仍然要求密码。 - user1076881
添加 -A 解决了密码部分。 - user1076881
2个回答

4

ssh-agent可以包装其他命令,例如您可以包装一个shell。

ssh-agent bash

接下来,在该 shell 中,您需要添加您的私钥,并输入您的密码:

ssh-add /path/to/your/private/key # (by default : ~/.ssh/id_rsa)

然后,当您使用ssh连接时,请添加-A选项:

ssh -A user@remote1

就这样,您的密钥已转发,如果您在remote1上键入以下内容,您将能够看到它:

ssh-add -L

现在,您可以使用该私钥连接到远程2。

使用ssh转发时要小心。当您连接时,具有远程1的根访问权限的任何人都可以使用您的身份连接到远程2。


如果你不知道私钥的路径,尝试连接到你的远程1,它应该会要求你输入密钥的密码,并打印出该密钥的路径。 - Wee

1
我非常确定~/.ssh/authorized_keys必须始终设置为chmod 600。这是一个需要保护的敏感文件。

如果我将该文件的权限更改为chmod 600,会影响其他人的访问权限吗? - user1076881

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接