繁体   English   中英

无法从命令行SSH到远程存储库

[英]Can't ssh to remote repository from command line

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

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

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

完成这些步骤之后,我的个人IP便被列出在防火墙中,因此我想我可以连接了。

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

我使用的命令是:

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

我详尽地查询了在线内容,但到目前为止没有成功,我真的需要尽快访问该存储库。

提前致谢! Obrigada :)

两种解决方法

直接在Git Bash中使用Pageant

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

另外,我强烈建议检查plink.exe是否可以在GIT Bash中工作,如下所示:

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

另一件事是要检查的腻子套件的版本。 (我稍后可以挖掘细节,但)0.60版存在一个错误,原因是cmd中的进程无法访问Pageant。 我相信这个问题已在0.62版中解决,但可以随时使用最新版本(0.67版)


将腻子密钥转换为OpenSSH格式

另一种可能性是通过使用puttygen.exe并直接在GIT Bash内部使用导出的密钥将腻子密钥导出为OpenSSH格式:

  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 

然后,您可以在GIT Bash中执行以下操作来测试ssh连接:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM