为什么我需要在我的Powershell配置文件中运行`ssh-add`?

9
在我的Microsoft.PowerShell_profile.ps1文件中,我需要添加ssh-add ~/.ssh/github_rsa,以连接到我的GitHub资源库。这是按照poshgit示例所做的。
# Load posh-git example profile
. 'C:\tools\poshgit\dahlbyk-posh-git-8aecd99\profile.example.ps1'

ssh-add ~/.ssh/github_rsa

如果我的个人资料中没有这个,当我尝试连接时,Github会给我权限错误。
如果我手动执行它,它将在我的桌面会话的整个持续时间内运行,但是一旦我重新启动计算机,我就需要重新运行该命令。
为什么poshgit和ssh-add不记住我添加的rsa?每次重新添加它似乎是错误的。
1个回答

24

之所以出现问题是因为您的rsa密钥不是默认名称(id_rsa),因此您需要使用ssh-add(将其添加到运行中的服务中,该服务会记住使用您的密码短语解密密钥)或者只需在~\.ssh\config中添加一个条目即可。

~\.ssh\config(创建或编辑):

Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/github_rsa

如果你只是用ssh密钥来连接github,那么只需将密钥重命名为id_rsa,然后git(即ssh.exe)会自动找到它,并且poshgit会将其ssh-add(处理密码短语)。


啊,这很有道理。这不是我的唯一密钥,因为我还使用两个不同的GitBlit实例来处理我的业务目的。 - Chase Florell
非常好用。我还将 github_rsa 重命名为 id_rsa_github,因为以其他方式无法正常工作... - Chase Florell
@Chase Florell 你是不是想把它重命名为id_rsa? - tofutim
@tofutim,不要这样做,否则它会成为默认设置。 - Chase Florell
1
我的 posh-git 似乎无法读取配置文件 - 你是否与默认设置有所不同? - tofutim
另外一行可以添加的是“Preferredauthentications publickey”,确保密钥真正被使用。 - TrackerSB

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接