Windwos系统的ssh免密登陆
Hadesr
编辑于 2023年09月22日 06:27

仅讲如果通过证书免密登陆。

需要提前在本地(客户端)生成公钥,本地也是需要安装openssh,安装openssh客户端就行。

在客户端用powrshell打开

代码块
Shell
自动换行
复制代码
ssh-keygen -t rsa
复制成功

  在C:\Users\%userprofile%\.ssh  位置找到id_rsa.pub

复制公钥文件id_rsa.pub到服务端C:\Users\%userprofile%\.ssh 并改名字为authorized_keys (没有文件后缀)

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

修改文件sshd_config 以下内容:

确保以下3条没有被注释

代码块
Shell
自动换行
复制代码
PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

PasswordAuthentication no
复制成功

确保以下2条有注释掉

代码块
Shell
自动换行
复制代码
#Match Group administrators

#AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
复制成功

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

 重启服务

代码块
Shell
自动换行
复制代码
Restart-Service sshd
复制成功

测试登录

回到客户端可以打开powrshell 登陆

代码块
Shell
自动换行
复制代码
ssh 用户名@IP 
复制成功

此时无密码直接登陆此时无需密码直接登录说明正常(首次登陆可能会提示是否加入known_hosts,yes即可)。

如果是多台windows主机互相免密,操作同上,不过需要每台主机的authorized_keys都需要包含其他主机公钥,即包含多条公钥记录