Answers:
首先,将私钥文件移到中~/.ssh
。严格来说,这不是必需的,但这是此类事情的标准位置。
然后运行ssh-add -K ~/.ssh/privateKey.txt
。如有必要,它将提示您输入密码,然后将其添加到钥匙串中。
之后,您无需执行其他任何操作。稍长的解释,请点击这里。
将密码短语存储在钥匙串中
要将默认密钥的密码存储在钥匙串中,请打开终端并运行:
ssh-add -K
并存储密码短语以进行其他键运行:
ssh-add -K /path/to/private/key/file
当提示您输入密码时,输入它。
您将不再需要运行ssh-add或再次输入密码。
从此网站获得的答案:http : //www-uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html
经过大量探索,我认为我已经完全找到了解决该问题的方法。首先,请确保您这样做ssh-add -K ~/.ssh/your_key_here
。这会将钥匙添加到您的钥匙串中。我读过一些地方,这已经足够了,但是我不确定。这也是特定于Mac的,因此,如果您需要在其他Unix风格上执行此操作,则不一定需要此选项。
为了达到良好的效果,我编辑了~/.ssh/config
文件(您可能必须创建它)以指向我拥有的所有键。我的有以下几点:
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 的手册页,它将按顺序尝试这些操作。我不确定我列出的前三个默认值是否需要存在,但是无论如何我都将它们包括在内。
-K
在Mac OS X上没有用于ssh-add
-K
在OS X的标志ssh-add
。除此之外,这应该是选定的答案。
/usr/bin/ssh-add
提供的自制程序/usr/local/bin/ssh-add
不提供-K选项。
~/.ssh/config
存在,则无需ssh-add
在重新启动计算机后每次都运行命令。
从macOS 10.12.2开始,您可以使用该UseKeychain
选项。
在这里阅读更多或研究man ssh_config
。
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''.
因此,请执行以下操作:
echo "UseKeychain yes" >> ~/.ssh/config
我对Mac没有太多经验,所以不确定此版本是否适合您,但请访问http://www.phil.uu.nl/~xges/ssh/
如果这个特定的应用程序无法正常工作,那就是您一直在寻找的- ssh agent
。在类似Unix的盒子上,您想通过它来启动整个窗口管理器,以获得全局效果,但是在osx中可能无法实现。
一些更多信息:http : //www-uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html
sshkeychain是一种可能性。使用以下命令在macports上安装良好:
sudo port install sshkeychain
它使用钥匙串来存储密码,您可以在登录会话启动时简单地启动它(使用第一次启动时,通常在扩展坞的图标上单击鼠标右键,然后单击“启动时启动”)
请注意,Apple的svn使用钥匙串来存储密码,但不一定要使用macports构建的svn二进制文件。
通过运行以下命令将您的钥匙添加到钥匙串中:
ssh-add -K ~/.ssh/id_rsa
并编辑您的ssh config(~/.ssh/config
)文件,以将密钥从密钥链自动加载到ssh-agent(AddKeysToAgent yes
选项),并将密码短语存储在密钥链(UseKeychain yes
选项)中:
Host *
AddKeysToAgent yes
UseKeychain yes
ssh-add
不能-K
争论。