SVN+;SSH,不是每次都要做SSH添加吗?(Mac OS)

SVN+;SSH,不是每次都要做SSH添加吗?(Mac OS),svn,macos,ssh,Svn,Macos,Ssh,我知道答案就在那里,但我很笨,如果它击中我的脸,我可能不会认出解决方案 我在Mac上,通过SSH隧道连接到SVN服务器。每次我想连接到SVN服务器时,我必须ssh添加privateKey.txt(基石和Xcode都连接到SVN) 有没有办法把钥匙“保存”到某个地方,这样我就不用每次都这么做?把它加到我的钥匙链上?一些配置文件?启动脚本 我对Mac电脑没有太多经验,所以不确定这个版本是否适合您的电脑,但请看一看 如果这个特定的应用程序不起作用,那就是你要寻找的-ssh-agent。在类unix的机

我知道答案就在那里,但我很笨,如果它击中我的脸,我可能不会认出解决方案

我在Mac上,通过SSH隧道连接到SVN服务器。每次我想连接到SVN服务器时,我必须
ssh添加privateKey.txt
(基石和Xcode都连接到SVN)


有没有办法把钥匙“保存”到某个地方,这样我就不用每次都这么做?把它加到我的钥匙链上?一些配置文件?启动脚本

我对Mac电脑没有太多经验,所以不确定这个版本是否适合您的电脑,但请看一看

如果这个特定的应用程序不起作用,那就是你要寻找的-
ssh-agent
。在类unix的机器上,您可能希望通过它启动整个窗口管理器,以获得全局效果,但在osx中可能不可能


更多信息:

首先,将私钥文件移动到
~/.ssh
中。这不是绝对必要的,但这是这些事情的标准场所

然后运行
ssh add-K~/.ssh/privateKey.txt
。如果需要,它会提示输入您的密码短语,然后将其添加到您的密钥链中

在那之后,你不应该做任何其他事情。有一个稍长的解释。

是一种可能性。可以使用以下方式使用macports安装:

sudo port install sshkeychain
它使用钥匙链存储密码,您只需在登录会话启动时启动它(第一次启动时使用通常的右键单击dock图标+“启动时启动”)


请注意,苹果的svn使用keychain存储密码,但不一定是使用macports构建的svn二进制文件。

经过大量探索,我想我已经完全找到了这个问题的答案。首先,确保在这里执行
ssh添加-K~/.ssh/您的密钥。这会将钥匙添加到钥匙链中。有些地方,我读到这已经足够了,但我不确定。这也是特定于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

根据for ssh_配置,它将按顺序尝试这些。我不确定我列出的前三个默认密码是否需要存在,但我还是将它们包括在内。

将密码短语存储在钥匙链中

要将默认密钥的密码短语存储在钥匙链中,请打开终端并运行:

ssh-add -K
以及存储不同密钥运行的密码短语:

ssh-add -K /path/to/private/key/file
当提示输入您的密码短语时,请输入密码,就是这样

您将不再需要运行ssh add或再次输入您的密码短语

从本网站获得的答复:

自macOS 10.12.2以来,您可以使用
UseKeychain
选项。 或者查看
manssh\u 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

通过运行以下命令将密钥添加到密钥链:

ssh-add -K ~/.ssh/id_rsa
并编辑您的ssh配置(
~/.ssh/config
)文件,以自动将密钥从密钥链加载到ssh代理(
addkeystagent yes
选项),并将密码短语存储在密钥链中(
UseKeychain yes
选项):


我认为值得明确指出的是,这是一个Mac的东西,而不是一个通用Unix的东西。在Ubuntu上,
ssh add
不能接受
-K
参数。我想指出的是,虽然链接的文章是针对Leopard的,但它在OS X Mavericks中仍然有效。出于某种原因,当我接受-K参数时,我在重启macOS Sierra后仍然存在问题?行为已经改变,您现在需要在登录时显式地将密钥添加到ssh代理:mac os x上没有
-K
标志用于
ssh add
,os x上有
-K
标志用于
ssh add
。除此之外,这应该是选择的答案。确保使用
/usr/bin/ssh add
自制的
/usr/local/bin/ssh add
不提供-K选项。一旦有了
~/.ssh/config
,就不需要在每次重新启动机器后运行
ssh add
命令。这需要启动。非常重要!
Host *
 AddKeysToAgent yes
 UseKeychain yes