Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git克隆。密钥\u加载\u公共:无效的格式权限被拒绝(publickey)_Git_Ssh - Fatal编程技术网

Git克隆。密钥\u加载\u公共:无效的格式权限被拒绝(publickey)

Git克隆。密钥\u加载\u公共:无效的格式权限被拒绝(publickey),git,ssh,Git,Ssh,我在Windows 10上使用puttygen.exe生成私钥和公钥。我将密钥保存在C:\Users\Alexander\.ssh中\ 公钥已添加到远程回购(不是由我添加的,我没有访问权限) 然后我在Git Bash中使用了以下命令: git clone git@ipaddress:project_name.git 我犯了一个错误: key_load_public: invalid format Permission denied (publickey). fatal: Could not r

我在Windows 10上使用puttygen.exe生成私钥和公钥。我将密钥保存在C:\Users\Alexander\.ssh中\

公钥已添加到远程回购(不是由我添加的,我没有访问权限)

然后我在Git Bash中使用了以下命令:

git clone git@ipaddress:project_name.git
我犯了一个错误:

key_load_public: invalid format
Permission denied (publickey).
fatal: Could not read from remote repository.
示例键(仅为示例生成)

id_rsa.ppk

PuTTY-User-Key-File-2: ssh-rsa
Encryption: none
Comment: rsa-key-20170110
Public-Lines: 6
AAAAB3NzaC1yc2EAAAABJQAAAQEAx0UhtZcgUT5XpoNlcoVFGHbArEsARQVCv5m0
TRh90Xq15gxOvL+x7I0B29xOuOP054RtQaOzHqnKUzpMdrIoZFkYEYJ11p42kC05
PVR/CwtKBuONJZzoIveJlNG1IhbC3G8DMZD5j68T5OVbCqftHMIBe4CTr7TewJ9T
/lmSZPytWXk/Xtcvn1i1TQZS2ShtSNOwtx77fLzkVmC6F4uM2JgJ9bSM2xQZTX/j
DYZTtoEsmyBadANAEZx4kQAoITwxXVRPBPJnB74EdSMXNhrDBJ+sZSEy7kxmc3a/
UK6CzdN3wiEMd/Bb1nuzR2cpWrWhniG66lnOTJb3sF8iiVtw7Q==
Private-Lines: 14
AAABAEtmRBsyQ5RcxzgWCrW14sr8gEExIrJVBH/ZSyQXGtmkDXmjysP1gZfGpsHk
qCpIaoEdWcXPPNsrfPzloGRDaTq57W5otvdCyImUkjLhs4ejaB5IQz6qEqVya2i+
DS9+O+S0YhLBO9WAhBFrijtiIl3oivB11wQ2mXlRCwZLZ9MugQ3rPfS0O/E2asrO
+MyiR2uv84lVb2wUT0Be3eeubnT2Qp8CoX3qV93LwBM053tepmD0jtSBsaXepADw
mdjBfIkUm+z/69PKtsEoYtIRe5DQRGQhUrwZasJnrfwAvdkr56NKM/rEL0ocUPDX
pXQalD88fKHKog5pr25c8aImklUAAACBAPmqhoRBWy+VJxgZ2BeMYv2PbmQCrQyp
ZVqua9byU59cANjarPcEb1zSUVEJyO8KlTW1eiTeMrya3cdrqbk3Rhp8XgolRsrv
ZK2rMQxP5nIoHyndtG1CCVqrWnwjIsb4r4cq2aBaUWjQJ+ofpiUHVkHev+h58zEA
zpDZs0Jrv5n7AAAAgQDMU04pqQ1hnv050gs8C2Gy+DjbW8b/NbQl64x0HFik/lWB
CRLrCd341ZQWY0PcU5ZjwNa8GwwJZPJI2bX84/a7dq2ENnT1+uYqpuK8lnPTcBDy
WjlGcf/fWJyJpdLqqXkMZ7or4k9ReVIXz9A8xRkhGEH2xM8Vk2fyoLY88RFUNwAA
AIA+zxdPdF8dPr8HwTJ5Pb0NQjl2likOxR24QmqxlCu/bD1p8R1tZzX5Jh2HP2on
RO+KVLYHzNKqtKRZW/MHftYcm6AvYLhP7hxG/tFoNM9lEmsqdJenxaWP745LP9Pc
k3qh7kC4KfTXyfgsd+C6dXzqhAokz81zL41QtyJxlQzR2w==
Private-MAC: ce79771084cbabf61fc2bf3b1403e42a9957e2af
id_rsa.pub

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20170110"
AAAAB3NzaC1yc2EAAAABJQAAAQEAx0UhtZcgUT5XpoNlcoVFGHbArEsARQVCv5m0
TRh90Xq15gxOvL+x7I0B29xOuOP054RtQaOzHqnKUzpMdrIoZFkYEYJ11p42kC05
PVR/CwtKBuONJZzoIveJlNG1IhbC3G8DMZD5j68T5OVbCqftHMIBe4CTr7TewJ9T
/lmSZPytWXk/Xtcvn1i1TQZS2ShtSNOwtx77fLzkVmC6F4uM2JgJ9bSM2xQZTX/j
DYZTtoEsmyBadANAEZx4kQAoITwxXVRPBPJnB74EdSMXNhrDBJ+sZSEy7kxmc3a/
UK6CzdN3wiEMd/Bb1nuzR2cpWrWhniG66lnOTJb3sF8iiVtw7Q==
---- END SSH2 PUBLIC KEY ----

这里可能有什么问题?

Git使用OpenSSH,不支持PuTTY密钥格式。您需要将其转换为OpenSSH格式。SO文件中对此进行了描述,现答复如下:

  • 开放式腻子
  • 单击“加载”
  • 加载您的私钥
  • 转到转换->导出OpenSSH并导出您的私钥
  • 将您的私钥复制到
    ~/.ssh/id\u rsa

验证以下事项:

  • 检查
    ~/.ssh
    目录中是否有空的
    id\u rsa.pub
    文件。 其中可能有多个.pub文件(取决于您已经创建的文件)。如果找到一个空白的.pub文件,请转到远程服务器中应该保存该文件的位置,即
    ~/.ssh/authorized_keys
    文件(在服务器上)。复制其值并粘贴到本地公钥文件中。保存

  • 如果本地公钥中的所有内容都正确,请检查您是否没有将私钥粘贴到服务器或其他地方


  • 很抱歉回答了一个老问题,但列出的解决方案没有帮助。以下是对我有效的方法:

    Git可能没有使用正确的SSH客户端进行传出连接

    我有一个类似的问题,最终使我走上了正确的轨道来解决它。据我所知,Git和我的命令行都使用openssh生成密钥对,但Git试图使用自己的SSH客户端打开密钥对

    我不知道为什么Git会使用两个不同的ssh客户端,一个用于生成,一个用于连接,但这可以通过打开到GitHub的ssh会话来验证我的密钥,而不是连接到存储库来证明。进一步的检查似乎证实了这一理论:

    C:\where ssh
    C:\Windows\System32\OpenSSH\ssh.exe
    
    在git bash中:

    $ where ssh
    C:\Program Files\Git\usr\bin\ssh.exe
    
    git config --global core.sshCommand "'C:\Windows\System32\OpenSSH\ssh.exe'"
    
    虽然尝试回答中列出的命令并没有解决我的问题,但他们引导我进行了一次更成功的谷歌搜索,让我在git bash中运行以下单行命令:

    $ where ssh
    C:\Program Files\Git\usr\bin\ssh.exe
    
    git config --global core.sshCommand "'C:\Windows\System32\OpenSSH\ssh.exe'"
    
    如果该命令有效,它将不会输出任何内容,但它将设置git使用与windows打包的ssh客户端,而不是git附带的客户端。在运行这个命令之后,Git为我完美地工作

    奇怪的是,在git bash中运行“where ssh”现在会返回两条路径,但它似乎不会引起更多问题:

    $ where ssh
    C:\Program Files\Git\usr\bin\ssh.exe
    C:\Windows\System32\OpenSSH\ssh.exe
    

    嗯,您可能必须将
    id\u rsa.pub
    移开,因为客户端无法读取它。这没有帮助。我认为生成的公钥对OpenSSH无效。它应该以ssh rsa AAAAB3NzaC1yc…开头。但是我的密钥以一些注释开头,没有ssh rsa单词。是的。将公钥移走或替换为openssh格式。