簡體   English   中英

為什么 git 要求密鑰密碼,而 ssh 不要求?

[英]Why does git asks for key passphrase when ssh does not?

我瀏覽了幾個關於為什么 git 每次都要求輸入 SSH 密鑰密碼的問答,但我還沒有找到一個描述我的情況的。 讓我的情況不同的是,我已經成功創建了一個 ssh 密鑰,將其添加到代理中,並且代理正在運行。 所以當我運行時:

ssh -T git@github.com

我立即收到成功消息“您已成功通過身份驗證,但 GitHub 不提供 shell 訪問權限。” 它不要求密碼。

令人困惑的是,在 powershell 中,當我導航到與該帳戶關聯的 git 存儲庫並運行 git 命令時,如下所示:

cd ~/mygitrepo
git fetch

我被要求Enter passphrase for key 'C:\Users\me\.ssh\github'

如果我輸入密碼,我就可以成功地從回購中獲取。

為什么在運行 git 命令時要求我輸入密碼,而在運行git命令時ssh要求我輸入密碼?

額外的細節

我正在運行 Windows 10,在 Windows 終端內使用 PowerShell。 我每天使用 ssh 連接到各種遙控器,它從不要求輸入密碼。

來自 ~/.ssh/config 的片段

Host github.com
    HostName github.com
    User git
    IdentityFile C:\Users\me\.ssh\github

來自 ~/mygitrepo/.git/config 的片段

[remote "origin"]
    url = git@github.com:myuser/myrepo.git

當您運行 git 命令時,默認情況下它使用自己的版本 ssh,它無法與 Windows ssh-agent 通信。

查看 Windows 使用的是什么二進制文件:

Powershell> where.exe ssh
CMD> where ssh

對我來說,結果是C:\Windows\System32\OpenSSH 現在通過在全局.gitconfig文件中設置以下行來強制 git 使用該二進制文件:

[core]
    sshCommand = "C:/WINDOWS/System32/OpenSSH/ssh.exe"
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM