无法从命令行

时间:2016-09-23 20:11:18

标签: windows git bash ssh command-line

我尝试连接到特定IP地址下的远程存储库。

我通过电子邮件收到了私钥,我在使用Putty的Windows上收到了私钥。 .ppk文件在Pageant中。

我还创建了一个GIT_SSH环境变量。

在这些步骤之后,我的个人IP随后列在防火墙中,所以我想我能够连接。

但是,当我使用git bash连接到服务器时,我收到消息"权限被拒绝(公钥)"。

我使用的命令是:

$ ssh [IP] $ ssh [username]@IP $ ssh -T [username]@IP

我在网上查了一遍,但到目前为止没有成功,我真的需要尽快访问回购。

提前致谢! Obrigada:)

1 个答案:

答案 0 :(得分:0)

两种方法

直接在Git Bash中使用Pageant

这需要将GIT_SSH环境变量设置为plink.exe的完整路径(这是putty套件的一部分)。

此外,我强烈建议检查plink.exe是否在GIT Bash中运行,如下所示:

Full-path-to-plink.exe -v -P port sshusername@sshserver

要检查的另一件事是您正在使用的Putty套件的版本。 (我可以稍后详细说明但是)版本0.60有一个错误,因为cmd中的进程无法访问Pageant。我相信这个问题在v 0.62中得到修复,但可以随意使用最新的(v 0.67)

将putty密钥转换为OpenSSH格式

另一种可能性是使用puttygen.exe将putty键导出为OpenSSH格式,并直接在GIT Bash中使用导出的键:

  1. 打开PuttyGen
  2. 点击加载
  3. 加载您的私钥
  4. 转到Conversions->Export OpenSSH并导出您的私钥
  5. 将您的私钥复制到~/.ssh/id_dsa(或id_rsa)。
  6. 使用ssh-keygen

    创建公钥的RFC 4716版本
    ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub
    
  7. 将公共密钥的RFC 4716版本转换为OpenSSH格式:

    ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub
    
  8. 然后你可以在GIT Bash中做类似的事情来测试ssh连接:

    GIT_SSH=ssh
    ssh -v sshusername@sshserver -i ~/.ssh/id_rsa