SSH代理问题


4

我在使用ssh代理程序时遇到问题,以确保每次某个程序使用我的id_rsa私钥时都不必输入密码。

我做到了ssh-add -K ~/.ssh/id_rsa,而且似乎在我的钥匙串中添加了一个条目

但这继续提示我。当我进入访问控制下的钥匙串时,看起来好像是因为未设置

Answers:


3

仔细检查您在这些文件中的权限,如果它们不是这样,它将无法正常工作:

-rw-------  1 martin  staff   1675 Jul 27  2009 id_rsa
-rw-r--r--  1 martin  staff    403 Jul 27  2009 id_rsa.pub

更新:如果您看到文件带有@,则表示它们具有“扩展属性”。

您可以通过发出以下命令查看它们的含义:

xattr -l <filename>

我的矿井看起来完全一样,除了我每个矿井后面都有@号
Jody G 2010年

扩展属性可能如何帮助或阻碍设置ssh?还是您说必须删除所有扩展属性?
bmike

哇,老问题。据我所记得,ssh密钥文件一定不能具有任何扩展属性,否则ssh客户端会拒绝使用它们,但这应该在现代系统上进行测试。
Martin Marconcini 2013年

2

如果是客户端问题,请使用详细选项从终端手动连接以查看问题所在。您可能还需要检查服务器上的错误日志,以了解您的公钥是否遭到拒绝。用户文件夹,.ssh文件夹以及其中的文件(如authorized_keys)的权限需要同时删除客户端和服务器上的所有组/其他写权限。SSH对权限非常挑剔,不会使用除您以外的任何人都可以访问的东西。


但是,一旦提示我输入密钥的密码,它便会起作用,因此必须表示它正在接受我的密钥。似乎它是ssh代理由于某种原因而无法工作,否则它不会每次都提示我输入密码。
乔迪·G

打开钥匙串访问权限,找到您的id_rsa密钥的项目,然后获取信息。勾选显示密码旁边的框(系统将提示您输入钥匙串的密码),然后查看是否存储了钥匙的密码。如果不是,我想你可以在钥匙串访问输入是正确的有
蒂姆·

2

我也有这个问题。对我来说/usr/bin/ssh-agent,过了一会儿就会关闭。

pgrep ssh-agent


/usr/bin/ssh-agent -s  #should show you something like this

SSH_AUTH_SOCK=/tmp/ssh-OYn3ShRY4l/agent.37715; export SSH_AUTH_SOCK;
SSH_AGENT_PID=37716; export SSH_AGENT_PID;
echo Agent pid 37716;

我什至感到恼火,并从访问控制端删除了OS X程序,并用最新的现代MacPorts版本替换了它们。一切都很好,除了“钥匙串访问”有点片状。我的ssh-add版本永远运行。您只需运行/usr/bin/ssh 一次 “古代”版本即可将您的钥匙插入钥匙串。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.