SVN+SSH, not having to do ssh-add every time? (Mac OS)
我知道答案是肯定的,但我是个很笨的Unix用户,如果它打到我的脸上,我可能就认不出解决方案了。
我在Mac上,通过ssh隧道连接到SVN服务器。每次我想连接到SVN服务器时(Cornerstone和Xcode都连接到SVN),我都必须使用
有没有办法把钥匙"保存"在某个地方,这样我就不必每次都这样做?把它加到我的钥匙链上?一些配置文件?启动脚本?
首先,将您的私钥文件移到
然后运行
在那之后,你不应该再做其他的事情了。这里有一个稍长的解释。
在密钥链中存储密码短语
要在keychain中存储默认密钥的密码短语,请打开终端并运行:
1 | ssh-add -K |
并为不同的密钥运行存储密码短语:
1 | ssh-add -K /path/to/private/key/file |
当提示您输入密码时,请输入它,即它。
您将永远不需要运行ssh add,也不需要再次输入密码短语。
从该站点获取的答案:http://www uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html
经过很多探索,我想我已经找到了这个问题的答案。首先,确保你做了
为了更好地衡量,我编辑了
1 2 3 4 5 | IdentityFile ~/.ssh/identity IdentityFile ~/.ssh/id_rsa IdentityFile ~/.ssh/id_dsa IdentityFile ~/.ssh/my_other_identity_here IdentityFile ~/.ssh/yet_another_identity_here |
根据ssh-config的手册页,它将按顺序尝试这些方法。我不确定我列出的前三个默认值是否需要存在,但我还是包含了它们。
由于MacOS 10.12.2,您可以使用
1 2 3 4 5 | UseKeychain On macOS, specifies whether the system should search for passphrases in the user's keychain when attempting to use a particular key. When the passphrase is provided by the user, this option also specifies whether the passphrase should be stored into the keychain once it has been verified to be correct. The argument must be ``yes'' or ``no''. The default is ``no''. |
因此,只需执行以下操作:
我对macs没有太多的经验,所以不确定这个版本是否适合您,但请访问http://www.phil.uu.nl/~xges/ssh/
如果这个特定的应用程序不起作用,那就是你要找的东西——
更多信息:http://www uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html
sshkeychain是一种可能性。安装MacPorts时可以使用:
1 | sudo port install sshkeychain |
它使用钥匙链来存储密码,您可以在登录会话启动时启动它(在第一次启动时使用通常右键单击Dock图标+"启动时启动")。
请注意,苹果的SVN使用keychain来存储密码,但不一定是用macports构建的SVN二进制文件。
通过运行以下命令将密钥添加到密钥链:
1 | ssh-add -K ~/.ssh/id_rsa |
并编辑ssh配置(
1 2 3 | Host * AddKeysToAgent yes UseKeychain yes |