0 前言
使用win10自带的SSH工具登录Linux,不需要每次都输入密码。网上找了很多教程才找到合适的,重新整理和操作并记录下来,给相同需求的小伙伴提供参考。(所有的操作都是在win10的CMD命令行)
1 生成公钥文件(win10)
1.1 键盘输入"win + R",再输入"cmd",在命令提示符上输入以下指令:
ssh-keygen -t rsa

1.2 提示选择路径时,直接回车,会自动选择默认路径。
1.3 提示输入密码时,直接回车,不要输入密码。

出现以下页面代表生了密钥

2 上传公钥文件(win10)
2.1 找到公钥文件的路径
第1步出现“Your public key has been saved in C:\Users\Lenovo/.ssh/id_rsa.pub.”,所以公钥文件的路径是"C:\Users\Lenovo/.ssh/id_rsa.pub"

2.2 上传。在命令提示符上输入以下命令,即可把公钥文件上传到linux服务器对应的路径下。
scp C:\Users\Lenovo/.ssh/id_rsa.pub eby@192.168.0.113:~/.ssh
3 重命名公钥文件和修改文件权限(win10的cmd上登录linux)
3.1 登录linux,此时仍需要密码登陆
ssh eby@192.168.0.113
(对应自己的用户和ip)


3.2 重命名公钥文件。
输入以下命令重命名公钥文件
mv .ssh/id_rsa.pub .ssh/authorized_keys
注意:这一步的目的是把id_rsa.pub中的内容添加到authorized_keys中去。也可以直接复制和粘贴内容。
3.3 修改文件权限
chmod 600 .ssh/authorized_keys
chmod 700 .ssh
4 修改SSH配置文件(Linux)
这个配置文件一般是只读文件,需要root权限
sudo vim /etc/ssh/sshd_config

保证这三句不被注释掉,如果没有则添加新的对应的语句,我需要添加"RSAAuthentication yes"
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
保存退出。
5 重新启动SSH服务(Linux)
sudo service sshd restart
6 测试免密登录(win10)
在命令提示符上输入
ssh eby@192.168.0.113

可以看出,不需要输入密码就可以登录到linux啦!
7 最后
感谢微软,知乎和其他网友的分享。
在同样的linux端口下,有时候会出现链接不上的情况,这时候有一种办法,就是清空host
让windows 不认识linux
重新认识一下

把config、known_hosts、known_hosts.old这些关于目标主机linux的信息全部清空
重新ssh就好