多台WIN10之间的SSH免密登录

网上有很多关于使用win10-ssh客户端登录linux-ssh服务端的介绍,但很少介绍多台win10-ssh服务端之间互访的。以下记录如何免密登录win10-ssh服务。

1、安装OpenSSH。

网上有很多介绍通过添加win10可选功能安装openssh,此处不赘述。如果通过添加可选功能出现安装失败,可以下载openssh自行安装。

下载地址:PowerShell/Win32-OpenSSH

注意:最好不要安装在C:\Users\your_userName\ 下面,不然会出现一些问题,建议直接解压到到C盘下C:\OpenSSH,并将该路径添加至环境变量Path。

开始安装:

以管理员身份打开powershell,切换至C:\OpenSSH(如果有添加环境变量则随意位置)。

set-executionpolicy remotesigned
cd C:\OpenSSH
以下安装命令需要在执行第一条命令后才能执行,不然会报错
 .\install-sshd.ps1

安装完毕。

2、开启ssh服务

Start-Service sshd

也可以使用net start sshd 启动,其他相关命令如下:

查看状态:Get-Service sshd
关闭服务:Stop-Service sshd
重启服务:Restart-Service sshd

确保防火墙关闭或防火墙有放开22端口。

从其他主机(客户端) ssh your_userName@your_IP_Adress 测试是否正常连接,默认需要输入密码登录。

3、开启免密登录

先在本地(客户端)生成公钥,当然,本地也是需要安装openssh。

ssh-keygen -t rsa

切换到路径:C:\Users\your_userName\.ssh,找到公钥文件id_rsa.pub

复制公钥文件内容,到服务端C:\Users\your_userName\.ssh下创建文件authorized_keys(没有文件后缀),粘贴公钥,保存退出。

服务端切换到C:\ProgramData\ssh\下(首次启动sshd后会生成该文件夹),打开sshd_config文件,

修改文件(以下是重点):

确保以下3条没有被注释
PubkeyAuthentication yes
AuthorizedKeysFile	.ssh/authorized_keys
PasswordAuthentication no

确保以下2条有注释掉
#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys

其余不做修改,基本都是已注释不启用。

重启服务:Restart-Service sshd

4、测试登录

回到客户端 ssh your_userName@your_IP_Adress,此时无需密码直接登录说明正常(首次登陆可能会提示是否加入known_hosts,yes即可)。如果是多台win10主机互相免密,操作同上,不过需要每台主机的authorized_keys都需要包含其他主机公钥,即包含多条公钥记录。

发布于 2020-03-09

4 条评论

  • 弥补人生2020-10-12

    不行啊,修改sshd_config就出现Permission denied (publickey,keyboard-interactive)错误了。

  • 叶一帆回复弥补人生2020-12-28

    出现此错误加1

  • 流水2020-12-30

    老哥牛逼啊,搜了半天没解决的问题,在这儿彻底解决了

  • 崮生刚刚

    非常感谢

想来知乎工作?请发送邮件到 jobs@zhihu.com