AddKeysToAgent是SSH配置在Mac上不起作用

Cod*_*dyK 5 macos ssh macos-sierra

嗨,我有我的ssh配置文件设置来自动将ssh密钥添加到ssh代理。但是,当前它不起作用。它以前在工作。我更新了bitbucket的ssh密钥,它不再起作用。重新启动后,必须使用ssh-add -K选项手动添加ssh密钥。

有人可以帮我弄清楚为什么ssh config无法正常工作吗?假设使用AddKeysToAgent yes选项启用ssh密钥的自动添加。

我正在运行macOS Sierra 10.12.4

这是配置(出于敏感目的,我更改了服务器名称)

GSSAPIAuthentication no

# --- SourceTree Generated ---
Host cik-bitbucket__com
    HostName bitbucket.com
    User cik
    PreferredAuthentications publickey
    IdentityFile /Users/cik/.ssh/cik-bitbucket__com
    UseKeychain yes
    AddKeysToAgent yes
# ----------------------------

Host *
    UseKeychain yes
    AddKeysToAgent yes
    ServerAliveInterval 15
    IdentityFile /Users/cik/.ssh/id_rsa

Host jenkins
    HostName pasjenkins1.mycompany.com
    UseKeychain yes
    AddKeysToAgent yes

Host jenkinsqa
    HostName pasjenkinsqa.mycompany.com
    UseKeychain yes
    AddKeysToAgent yes

Host artifactory
    HostName prp01
    UseKeychain yes
    AddKeysToAgent yes

Host bitbucket
    HostName bitbucket
    UseKeychain yes
    AddKeysToAgent yes

Host confluence
    HostName confluence01
    UseKeychain yes
    AddKeysToAgent yes

Host jira
    HostName jira01
    UseKeychain yes
    AddKeysToAgent yes

Host vagrant
    HostName 127.0.0.1
    Port 2222
    User vagrant
    IdentityFile /Users/cik/.vagrant.d/insecure_private_key

Host localhost
    HostName 127.0.0.1
    Port 2222
    User vagrant
    IdentityFile /Users/cik/.vagrant.d/insecure_private_key
Run Code Online (Sandbox Code Playgroud)

更新:

顺序很重要。

这有效

ssh-add -D
ssh-add -K /Users/cik/.ssh/cik-bitbucket__com
ssh-add
git push (Works)
Run Code Online (Sandbox Code Playgroud)

不起作用

ssh-add -D
ssh-add
ssh-add -K /Users/cik/.ssh/cik-bitbucket__com
git push (Works)
Run Code Online (Sandbox Code Playgroud)

Jak*_*uje 5

您的代理中密钥太多,在服务器拒绝之前只能尝试有限的密钥。幸运的是,您具有很好的配置,可以区分每个主机的密钥,因此您应该能够通过设置

IdentitiesOnly yes
Run Code Online (Sandbox Code Playgroud)

中的配置选项ssh_config

  • 我将Host *部分移到bitbucket之后结束,并且可以正常工作 (4认同)