Mac通过SSH实现通过公钥密钥免密码与Windows工作站/服务器连接:常见的坑
目录
具体安装教程
常见的坑
Windows中特有的操作:
需要修改sshd_config配置文件
Windows如果本身没有登录密码,则无法使用SSH公钥密钥连接
一、具体安装教程
服务器端方法看这篇
Windows OpenSSH 服务器启用密钥登录 - 知乎https://zhuanlan.zhihu.com/p/404179039
客户端公钥密钥生成方法详情看这篇
SSH简介及两种远程登录的方法-CSDN博客https://blog.csdn.net/li528405176/article/details/82810342
客户端公钥密钥进阶一点看这篇
Mac终端 使用ssh密钥登录Linux_mac terminal 密钥登陆-CSDN博客https://blog.csdn.net/lvtu_rain/article/details/111719491
二、常见的坑
2.1 Windows中特有的操作:
2.1.1 更改authorized_keys文件权限,不更改则无法通过密钥登录
客户端(发起控制端):
# 远程通过ACL更改文件权限
ssh --% user1@ip icacls.exe "C:Usersusername(替换自己的).sshuthorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
服务器端:通过以下命令修改,需要管理员权限
#在服务器端修改authorized_keys文件权限
icacls.exe "C:Usersusername.sshuthorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
2.1.2 需要修改sshd_config配置文件
需要管理员权限(推荐使用vscode打开编辑,可以快速获取管理员权限)
#配置文件目录:
C:ProgramDatasshsshd_config
使用vscode打开sshd_config文件,搜索后检查并修改以下配置:
#允许公钥授权访问,确保:不被注释
PubkeyAuthentication yes
#授权文件存放位置,确保:不被注释
AuthorizedKeysFile .ssh/authorized_keys
#(可选)关闭密码登录,提高安全性
PasswordAuthentication no
#注释掉默认授权文件位置,确保:被注释!!!
#Match Group administrators
# AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
请保持以上3个(或4个条目) “被注释”的情况与以上展示的保持一致
然后在PowerShell(管理员)中重启sshd服务
#重启sshd,需要管理员权限
Restart-Service sshd
这里有大坑!!!Windows默认隐藏C盘目录下的'ProgramData'文件夹
需要在C盘目录下,开启:'查看-隐藏的项目',Windows11同理
2.2Windows如果本身没有登录密码,则无法使用SSH公钥密钥连接
解决方法:
win+R运行,输入:
secpol.ms
如下图所示:安全设置-本地策略- 安全选项-账户:使用空密码的本地账号……
选择禁用,然后在powershell中restart sshd即可