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:\Users\abc\bin>ssh -T [email protected]
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:
[email protected]: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,pas
sword).
此时,配置好公私钥之后,任何需要输入密码的都是耍流氓,都是错误的。

(4)调试
ssh -vT [email protected]

使用的私钥为/.ssh/id_rsa

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

(5)解决
临时解决:指定私钥
用 ssh -T -i C:\Users\abc\.ssh\id_rsa [email protected]
即用i指定私钥,则连接成功

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

只要把公钥私钥从上一个目录拷贝到下一个目录,就可以链接成功了。
 
ssh -T 测试成功,则cmd下git ssh clone也自然是成功的。

猜你喜欢

转载自www.cnblogs.com/newalan/p/9289449.html