我的大部分個人項目都是Atlassian的BitBucket。作爲一種自然選擇,我使用SourceTree應用程序(他們的產品)作爲Windows上的git GUI客戶端,我對此感到滿意。對於ssh
git可用的項目,我比https
更喜歡ssh
。 SourceTree在BitBucket上託管的項目中發揮得非常好。儘管它提供了兩種ssh代理:OpenSSH或PuTTY,但它的默認選擇是PuTTY/Plink(可能是因爲PuTTY更熟悉Windows)。GitLab不能使用在Pageant中加載的密鑰?
最近我的機構申請在自己的服務器上託管一些項目。首先看看它是一個使用GitLab開源的git服務器。我可以使用SourceTree和這裏使用的項目https
就好,但是當涉及到ssh
時,SSH代理的唯一選擇是OpenSSH。它會使用(除非在配置中指定)的唯一密鑰對~/.ssh/id_rsa.pub
和~/.ssh/id_rsa
(位於%USERPROFILE%\.ssh\
我試過:
- 負載
~/.ssh/id_rsa
到PuTTY密鑰生成 - 將其轉換爲膩子格式(
.ppk
)文件 - 裝入
.ppk
成佳麗(膩子認證代理)。
儘管關鍵字被Pageant加載並保存在內存中,但與服務器的連接始終失敗,例如, git: fatal: Could not read from remote repository
。使其工作的唯一方法是開始ssh-agent
和ssh-add
(使用OpenSSH)。
由於我通常在後臺運行Pageant,我發現使用起來更方便(例如,keyphrase打開私鑰長/複雜,我不記得它,它可以複製粘貼來自KeePass,而在OpenSSH的情況下,cmd
控制檯不允許我粘貼它,太糟糕了)。
是否有無論如何通過PuTTY而不是OpenSSH做GitLab的SSH認證?