我正試圖在linux上設置一個git客戶端。我將我的私鑰上傳到了機器上,並且我明白我應該將其放入〜/ .ssh中,但我無法訪問該文件夾。在Linux上爲git私有SSH密鑰設置一個自定義路徑
我該如何告訴git在其他地方尋找私鑰?
我正試圖在linux上設置一個git客戶端。我將我的私鑰上傳到了機器上,並且我明白我應該將其放入〜/ .ssh中,但我無法訪問該文件夾。在Linux上爲git私有SSH密鑰設置一個自定義路徑
我該如何告訴git在其他地方尋找私鑰?
一個選項是使用ssh-agent
並提供一個文件名到ssh-add
。
例如:
$ ssh-agent /bin/bash
$ ssh-add ~/mykeys/id_rsa
我會說在~/.ssh/config
把文件名,但你可能不會有訪問此文件了。
您可以給ssh
私鑰使用-i keyfile
選項。
現在怎麼說git哪些選項傳遞給ssh?
GitTips page說創建一個包裝腳本並指向GIT_SSH
環境變量。
它看起來像你也可以使用git配置core.gitProxy
,但我沒有找到一個很好的例子,some mailing list message暗示它只適用於git:
協議。
@ dragon788感謝您修復鏈接,但您可以鏈接到該頁面的正確部分(如我現在所做的那樣)。 (下次只是一個提示。) – 2016-07-14 21:43:51
從原始文章名稱中我不太確定,並且鏈接它是否有意指向特定部分,因爲鏈接名稱是現在指向的「Gittips頁面」。我還試圖添加GIT_SSH_COMMAND,因爲這顯然是一個支持的環境變量,但當時我只是想修復斷開的鏈接。 – dragon788 2016-07-14 22:03:43
您可以使用ssh config file來實現。
首先創建一個文件,你的名爲config
~/.ssh
文件夾內,你可以使用一些如下命令
$ nano ~/.ssh/config
然後,該文件的內容應該有你的關鍵的基礎上每個主機名的位置。例如:
Host github.com
IdentityFile ~/myPublicKeyFolder/myGitHubFile
Host heroku.com
IdentityFile ~/myPublicKeyFolder/myHerokuFile
所以,當混帳試圖訪問每個主機將遵循基於Git的這個配置文件中的規則,承載您試圖達到
這非常酷,因爲它也適用於Windows上的git。 – 2012-09-26 13:28:38
在linux中沒有工作。 – deepujain 2013-10-18 14:05:28
@deepujain哪個linux? – 2013-10-18 23:59:51
對於一個項目,我的工作我的應用程序需要使用所有的git命令來吐出一個shell腳本來初始化/提交/推送到外部存儲庫。 〜/ .ssh/config不受限制,所以我在我的應用程序目錄中有公鑰/私鑰。我用vhallac的答案。這是我在我的shell腳本來完成用我的鑰匙:
eval `/usr/bin/ssh-agent`
ssh-add /path/to/.ssh/id_rsa
希望這可以幫助別人
使用ssh-agent
ssh-agent bash -c 'ssh-add /home/me/my_private_key; git clone [email protected]:uname/test-git-repo.git'
它沒有工作。 $ ssh-agent/bin/bash $ ssh-add/home/deepakkv/gitkeys/id_rsa 加入身份:/ home/deepakkv/gitkeys/id_rsa $ git push origin master 權限被拒絕(publickey)。 致命:遠程端意外掛斷 $ – deepujain 2013-10-18 14:01:02
git使用了你的私鑰,所以它看起來像這部分工作。可能在服務器端缺少某些東西(錯誤的密鑰,未註冊的密鑰等)。)你可能想問一個新的問題。 – vhallac 2013-10-20 05:01:31