
仅讲如果通过证书免密登陆。
需要提前在本地(客户端)生成公钥,本地也是需要安装openssh,安装openssh客户端就行。
在客户端用powrshell打开
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条没有被注释
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no 确保以下2条有注释掉
#Match Group administrators
#AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys 其余不做修改,基本都是已注释不启用
重启服务
Restart-Service sshd 回到客户端可以打开powrshell 登陆
ssh 用户名@IP 此时无密码直接登陆此时无需密码直接登录说明正常(首次登陆可能会提示是否加入known_hosts,yes即可)。
如果是多台windows主机互相免密,操作同上,不过需要每台主机的authorized_keys都需要包含其他主机公钥,即包含多条公钥记录