SVN + SSH,不必每次都进行ssh-add?(苹果系统)

Jam*_*s J 103 svn macos ssh

我知道答案就在那里,但我非常愚蠢,如果它让我面目全非,可能无法识别解决方案.

我在Mac上,通过SSH隧道连接到SVN服务器.我ssh-add privateKey.txt每次都要连接到SVN服务器(两个Cornerstone和Xcode都连接到SVN).

有没有办法在某处"保存"密钥,所以我不必每次都这样做?把它添加到我的钥匙串?一些配置文件?启动脚本?

Nic*_*ley 172

首先,将您的私钥文件移动到~/.ssh.这不是绝对必要的,但它是这类事物的标准位置.

然后跑ssh-add -K ~/.ssh/privateKey.txt.如有必要,它会提示您输入密码,然后将其添加到您的钥匙串中.

在那之后,你不应该做任何其他事情.稍长的解释,请点击这里.

  • 我认为值得注意的是,这是一个Mac的东西,而不是通用的Unix东西.在Ubuntu上,`ssh-add`不能接受`-K`参数. (17认同)
  • 你在macOS Sierra吗?行为已更改,您现在需要在登录时将密钥显式添加到ssh-agent:https://github.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain (6认同)
  • 出于某种原因,当我做-KI重启后仍然有问题 (4认同)
  • 我想要注意的是,虽然链接文章适用于Leopard,但这仍适用于OS X Mavericks. (2认同)

小智 49

在钥匙串中存储密码短语

要在Keychain中存储默认密钥的密码,请打开终端并运行:

ssh-add -K
Run Code Online (Sandbox Code Playgroud)

并为不同的密钥运行存储密码:

ssh-add -K /path/to/private/key/file
Run Code Online (Sandbox Code Playgroud)

当提示您输入密码时,请输入它,就是这样.

您永远不需要运行ssh-add,也不需要再次输入密码.

从本网站获取的答案:http: //www-uxsup.csx.cam.ac.uk/~aia21/osx/leopard-ssh.html


mit*_*lia 19

经过多次探索,我想我已经完全找到了这个问题的答案.首先,确保你这样做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
Run Code Online (Sandbox Code Playgroud)

根据ssh_config 的手册页,它将按顺序尝试这些.我不确定我列出的前三个默认值是否需要存在,但无论如何我都包括它们.

  • 对于`ssh-add`,OS X上的**是一个`-K`标志.除此之外,这应该是选定的答案. (2认同)
  • 一旦有`〜/ .ssh/config`,就不需要在重启机器后每次都运行`ssh-add`命令. (2认同)

Ben*_*Ben 6

从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''.
Run Code Online (Sandbox Code Playgroud)

所以只需执行以下操作:

echo "UseKeychain yes" >> ~/.ssh/config

  • 这需要上升.**很重要**! (3认同)