windows cmd下ssh连接免密码问题解决

windows 7 cmd下 ssh -T username@serverip 免密码连接成功

有的同学在windows下开发,并且在windows下安装了git for windows,这些资源已经足够进行开发和git版本管理了。

这里只介绍一下如何在cmd下ssh连接远程服务器。

(1)生成ssh公钥私钥

 安装git之后,ssh和ssh-keygen都是可用的,直接用ssh-keygen产生公私钥

默认生成的公私钥win7系统在  C:Users用户名.ssh下

默认名为id_rsa、id_rsa.pub

(2)把公钥拷贝到服务器上

对应linux服务器,是linux服务器上的~/.ssh/authorized_keys

对于gitlab或者gerrit或者GitHub,可以通过网页把公钥粘贴上。

(3)测试

  在本地windows 7下打开cmd

  输入 ssh -T username@serverip

  发现需要输入密码

C:Usersabcin>ssh -T sm01@10.230.135.44
sm01@10.230.135.44's password:
Permission denied, please try again.
sm01@10.230.135.44's password:
Permission denied, please try again.
sm01@10.230.135.44's password:
sm01@10.230.135.44: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,pas
sword).
此时,配置好公私钥之后,任何需要输入密码的都是耍流氓,都是错误的。

(4)调试
ssh -vT sm01@10.230.135.44

使用的私钥为/.ssh/id_rsa

该私钥不是 C:Users用户名.ssh下的私钥,私钥文件指定不对,所以连接不上。

(5)解决
临时解决:指定私钥
用 ssh -T -i C:Usersabc.sshid_rsa sm01@10.230.135.44
即用i指定私钥,则连接成功

彻底解决:
经过分析,ssh-keygen默认生成的公钥在用户主目录下的.ssh下(即C:Users用户名.ssh),
但是实际使用的私钥是在git安装目录下的.ssh(即C:Program Files(x86)Git.ssh)

只要把公钥私钥从上一个目录拷贝到下一个目录,就可以链接成功了。

ssh -T 测试成功,则cmd下git ssh clone也自然是成功的。

原文地址:https://www.cnblogs.com/newalan/p/9289449.html