惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

大猫的无限游戏
大猫的无限游戏
Webroot Blog
Webroot Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
T
Threat Research - Cisco Blogs
V2EX - 技术
V2EX - 技术
L
LINUX DO - 热门话题
Google DeepMind News
Google DeepMind News
Recorded Future
Recorded Future
S
Schneier on Security
I
InfoQ
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
The GitHub Blog
The GitHub Blog
S
Security @ Cisco Blogs
O
OpenAI News
W
WeLiveSecurity
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
Simon Willison's Weblog
Simon Willison's Weblog
人人都是产品经理
人人都是产品经理
Cloudbric
Cloudbric
The Last Watchdog
The Last Watchdog
The Hacker News
The Hacker News
Google Online Security Blog
Google Online Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
GbyAI
GbyAI
NISL@THU
NISL@THU
T
Tailwind CSS Blog
V
Visual Studio Blog
PCI Perspectives
PCI Perspectives
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
D
DataBreaches.Net
B
Blog RSS Feed
N
News and Events Feed by Topic
N
News and Events Feed by Topic
H
Heimdal Security Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
腾讯CDC
Latest news
Latest news
V
Vulnerabilities – Threatpost
Hacker News: Ask HN
Hacker News: Ask HN
WordPress大学
WordPress大学
V
V2EX
aimingoo的专栏
aimingoo的专栏
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
D
Darknet – Hacking Tools, Hacker News & Cyber Security
The Register - Security
The Register - Security
Help Net Security
Help Net Security

博客园 - 渺晓

2025年终总结2026展望 2024年终总结 centos7.9 升级openssh(9.7p1) 2023年终总结 ELK自动清理索引 docker+docker-compose部署rocketmq集群遇到的大坑 docker-compose部署rocketmq集群 centos7安装docker compose k8s部署jar包心得 kubernetes集群搭建2023 kubepi加入集群,生成token CentOS7 安装ElasticSearch8.9+Kibana8.9 windows服务器nginx和iis端口冲突问题 Linux(Centos7.6) 逻辑卷扩容 磁盘扩容 LVM扩容 LVM创建 逻辑卷挂载 2022年终总结 python pdf转图片 Windows搭建Mysql8 java基础 idea maven 私库 Window10启动Consul后页面UI卡住
Windows11 Centos7 SSH Server配置 RSA公钥登录 免密登录
渺晓 · 2023-09-18 · via 博客园 - 渺晓

第一种 Centos7(192.168.40.142)连接Centos7(192.168.40.141)

第一步 生成公钥秘钥对(在192.168.40.142上操作)

ssh-keygen
可以连续回车3次
第一个是文件名,默认是id_rsa,如需修改,自己输入一个文件名便可。
第二与第三是密码与确认密码,是以后使用该公钥时要输入的密码,一般不设置,如有强烈的安全需求,自己设置便可。
最后会生成两个文件id_rsa,id_rsa.pub。以.pub结尾的是公钥,另一个是私钥。
生成的文件在/root/.ssh/

第二步 将公钥放到目标服务器

ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.40.141
需要输入141的密码
----------------------分割线---------------------
也可以将公钥手动复制到目标服务器上
/root/.ssh/authorized_keys中
如果发现/root/.ssh路径不存在,就执行下 ssh localhost

重启ssh

第三步 验证

第二种 Windows11(192.168.40.1) 链接 Centos7(192.168.40.141)

第一步 Windows11默认没有SSH,需要先进行安装

注意一定要用管理员身份运行PowerShell
Get-WindowsCapability -Online | Where-Object Name -like  'OpenSSH*'

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
net start sshd
参考自:https://zhuanlan.zhihu.com/p/576414452?utm_id=0

第二步 生成公钥秘钥对(在windows11上操作)

ssh-keygen -t rsa
一样的回车3次
生成的路径在
C:\Users\jianghaidong\.ssh
你们需要将jianghaidong更换成自己的用户名
实践中还遇到生成的目录为C:\Users\jianghaidong\

第三步 将公钥放到目标服务器

将公钥手动复制到目标服务器上
/root/.ssh/authorized_keys中
如果发现/root/.ssh路径不存在,就执行下 ssh localhost

注意如果authorized_keys之前已经存在,不要进行覆盖,直接换行进行追加,否则会导致之前配置的ssh免密登录失效
重启ssh

第四步 验证(在192.168.40.1上操作)

第三种 Centos7(192.168.40.142)连接 Windows11(192.168.40.1)

第一步 生成公钥秘钥对(在192.168.40.142上操作)

ssh-keygen
可以连续回车3次
第一个是文件名,默认是id_rsa,如需修改,自己输入一个文件名便可。
第二与第三是密码与确认密码,是以后使用该公钥时要输入的密码,一般不设置,如有强烈的安全需求,自己设置便可。
最后会生成两个文件id_rsa,id_rsa.pub。以.pub结尾的是公钥,另一个是私钥。
生成的文件在/root/.ssh/

第二步 修改配置文件(在192.168.40.1上操作)

修改C:\ProgramData\ssh\sshd_config配置文件
取消PubkeyAuthentication yes这一行的注释,就是删除第一行的#

再注释掉最后两行
#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys


打开注释的目的就是开启公钥登录验证

注释最后两行的目的就是验证文件目录

第三步 将公钥放到目标服务器中(在192.168.40.1上操作)

不能把authorized_keys放到C:\ProgramData\ssh,这样是不会生效的
因为sshd_config的配置是AuthorizedKeysFile    .ssh/authorized_keys
所以我的目录是
C:\Users\jianghaidong\.ssh\authorized_keys

你们需要将jianghaidong更换成自己的用户名

最后一定要重启ssh

第四步 验证(在192.168.40.142上操作)

 第四种 windows11(192.168.40.150) 连windows11(192.168.40.151)

第一步 两台服务器先安装ssh

注意一定要用管理员身份运行PowerShell
Get-WindowsCapability -Online | Where-Object Name -like  'OpenSSH*'

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

net start sshd
参考自:https://zhuanlan.zhihu.com/p/576414452?utm_id=0

第二步 生成公钥秘钥对(在192.168.40.150上操作)

ssh-keygen -t rsa
一样的回车3次
生成的路径在
C:\Users\jianghaidong\.ssh中
你们需要将jianghaidong更换成自己的用户名

第三步 将公钥放到目标服务器中(在192.168.40.151上操作)

不能把authorized_keys放到C:\ProgramData\ssh,这样是不会生效的
因为sshd_config的配置是AuthorizedKeysFile    .ssh/authorized_keys
所以我的目录是
C:\Users\jianghaidong\.ssh\authorized_keys

你们需要将jianghaidong更换成自己的用户名

一定要重启ssh

第四步 修改配置文件(在192.168.40.151上操作)

修改C:\ProgramData\ssh\sshd_config配置文件
取消PubkeyAuthentication yes这一行的注释,就是删除第一行的#

再注释掉最后两行
#Match Group administrators
#       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys


打开注释的目的就是开启公钥登录验证

注释最后两行的目的就是验证文件目录
最后一定要重启ssh(如果上一步没有重启)
 

第五步 验证(在192.168.40.150上操作)

ssh jianghaidong@192.168.40.151

注意用户名

--------------------------------------------大分割线---------------------------------------------

注意事项一:

windows server版本可能不能使用上面的方式安装

需要手动下载安装

下载地址:https://github.com/PowerShell/Win32-OpenSSH/releases

下载最新的版本,并解压

使用powershell管理员方式运行

cd到解压后的目录 powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

开启防火墙端口22  netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22

最后启动 net start sshd

结束

注意事项二:
一定要记得修改目标服务器的配置文件,并重启

注意事项三:

来源服务器和目标服务器的公钥秘钥必须放到.ssh文件夹中

本人理解为:来源服务器ssh发出请求时会带上.ssh文件夹中的私钥信息,ssh目标服务器接收时会用自身的.ssh文件夹中的公钥验证私钥信息

私钥签名+公钥验签   完成对来源服务器的认证

注意事项四:

使用Jenkins的SSH时,可能由于版本问题导致连接失败,可能是由于签名方式的问题,使用以下方式尝试

ssh-keygen -m PEM -t rsa -b 2048