[英]Git with SSH on Windows
I've went through the excellent guide provided by Tim Davis which is about configuring Git to work with SSH under Windows in order to produce a Git Server in order to have a main place for my DVCS.
我正在為我的項目創建克隆。 到目前為止,我已經完成了所有步驟,但我一直從 TortoiseGit 得到這個:
git.exe clone -v “ssh://Administrator@127.0.0.1:22/SSH/Home/administrator/myapp.git” “E:\GitTest\myapp”
bash: Administrator@127.0.0.1: command not found
Initialized empty Git repository in E:/GitTest/myapp/.git/
fatal: The remote end hung up unexpectedly
Success
沒有任何東西被克隆。
順便說一句: TortoisePLink
在此消息出現之前出現並詢問我:“ login as:
”(我認為此信息是在命令中給出的,即: Administrator@blahblah
。
我的主變量設置為正確的位置:從 Git Bash shell 開始:
echo $HOME
/c/SSH/home/Administrator
我也嘗試過使用 Putty 的 plink 而不是TortoisePLink
(在 Git 和TortoiseGit
的安裝中)。 這次錯誤被縮小到:
git.exe clone -v “ssh://Administrator@127.0.0.1:22/c:/SSH/Home/administrator/myapp.git” “E:\GitTest\myapp”
Initialized empty Git repository in E:/GitTest/myapp/.git/
fatal: The remote end hung up unexpectedly
在偶然發現明顯的答案之前,我與這個問題斗爭了幾個小時。 我遇到的問題是我在生成密鑰和使用 git 之間使用了不同的 ssh 實現。
我在命令提示符下使用 ssh-keygen 來生成我的密鑰,但是當我嘗試“git clone ssh://...”時,我得到了與您相同的結果,提示輸入密碼和消息“fatal: The remote最后意外掛斷”。
通過執行 Windows 的“where”命令確定正在使用的 ssh 窗口。
C:\where ssh
C:\Program Files (x86)\Git\bin\ssh.exe
第二行告訴您將執行哪個確切的程序。
接下來,您需要確定 git 正在使用哪個 ssh。 通過以下方式查找:
C:\set GIT_SSH
GIT_SSH=C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe
現在你看到了問題所在。
要更正此問題,只需執行:
C:\set GIT_SSH=C:\Program Files (x86)\Git\bin\ssh.exe
要檢查是否應用了更改:
C:\set GIT_SSH
GIT_SSH=C:\Program Files (x86)\Git\bin\ssh.exe
現在 git 將能夠使用您之前生成的密鑰。
到目前為止,此修復僅適用於當前窗口。 要完全修復它,您需要更改環境變量。
現在,您以后打開的任何命令窗口都將具有正確的設置。
希望這可以幫助。
由於這在搜索結果中不斷出現以使 git 和 github在 Windows 上與 SSH 一起工作(並且因為我不需要上述指南中的任何內容),我添加了以下簡單的解決方案。
(微軟表示他們正在努力將 SSH 添加到 Visual Studio,而 GitHub for Windows 仍然不支持 SSH...)
1.我安裝了“git for Windows”(包括 ssh 和 bash shell)
https://git-scm.com/download/win
2.從包含的 bash shell(對我來說,它安裝在: C:\\Program Files\\Git\\git-bash.exe
)
cd
到您想要保存 repo 的根級別(類似於: C:\\code\\github\\
),然后
類型:
eval $(ssh-agent -s) && ssh-add "C:\\Users\\YOURNAMEHERE\\.ssh\\github_rsa"
3. 輸入:(來自 repo 的 SSH 鏈接)
git clone git@github.com:RepoName/Project.git
您在此處使用智能引號“
而不是"
:
git.exe clone -v “ssh://
^^^
確保使用普通的雙引號。
我在“C:/Program Files/Git/usr/bin”目錄中找到了我的 ssh.exe
如果安裝了 Windows 版 Git,請運行 Git Bash shell
:
bash
您可以在 Bash shell 中運行 ssh(Bash 知道 ssh 的路徑)
要知道 ssh 的確切路徑,請在 Bash shell 中運行“where”命令:
$ where ssh
你得到:
c:\Program Files\Git\usr\bin\ssh.exe
我試圖用上面的一些答案來解決我的問題,但由於某種原因它不起作用。 我確實切換到使用 git 擴展,這是我遵循的步驟。
Tools -> Settings -> SSH -> Other ssh client
C:\\Program Files\\Git\\usr\\bin\\ssh.exe
我想這些步驟與上面解釋的相同。 唯一的區別是我使用了 Git 擴展用戶界面而不是終端。 希望這有幫助。
當我輸入where ssh
時,它顯示了多重ssh.exe
user@pc MINGW64 /c/dev/
$ where ssh
C:\Users\user\AppData\Local\Programs\Git\usr\bin\ssh.exe
C:\Windows\System32\OpenSSH\ssh.exe
刪除/移動這些 exe 有助於:
# copy from
# C:\Users\user\AppData\Local\Programs\Git\usr\bin
# to something like
# C:\Users\user\AppData\Local\Programs\Git\usr\bin\backup-ssh
ssh-agent.exe
ssh.exe
ssh-add.exe
這為我解決了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.