Windows 配置 SSH 免密登录 Linux 服务器
·
Windows 配置 SSH 免密登录 Linux 服务器
1. 查看本机是否已有 SSH 密钥
打开 Windows PowerShell:
ls C:\Users\你的Windows用户名\.ssh
如果存在下面两个文件,说明已有 SSH 密钥:
id_rsa
id_rsa.pub
其中:
id_rsa # 私钥,留在 Windows 本机
id_rsa.pub # 公钥,复制到 Linux 服务器
2. 如果没有 SSH 密钥,先生成
如果 .ssh 目录下没有 id_rsa 和 id_rsa.pub,执行:
ssh-keygen -t rsa -b 4096
一路回车即可。
生成完成后,再查看:
ls C:\Users\你的Windows用户名\.ssh
正常会看到:
id_rsa
id_rsa.pub
也可以查看公钥内容:
type C:\Users\你的Windows用户名\.ssh\id_rsa.pub
3. 第一次连接服务器
执行:
ssh 远程用户名@服务器IP
第一次连接会提示:
Are you sure you want to continue connecting?
输入:
yes
然后输入服务器密码。
登录成功后退出:
exit
4. 复制 Windows 公钥到 Linux 服务器
在 Windows PowerShell 执行:
type C:\Users\你的Windows用户名\.ssh\id_rsa.pub | ssh 远程用户名@服务器IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"
这一步还需要输入一次服务器密码。
5. 测试免密登录
再次执行:
ssh 远程用户名@服务器IP
如果不再要求输入密码,说明配置成功。
6. 配置 SSH 别名
打开 SSH 配置文件:
notepad C:\Users\你的Windows用户名\.ssh\config
写入:
Host myserver
HostName 服务器IP
User 远程用户名
IdentityFile C:\Users\你的Windows用户名\.ssh\id_rsa
以后直接登录:
ssh myserver
7. 常见问题
如果仍然要求输入密码,先检查服务器权限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
检查公钥是否写入成功:
cat ~/.ssh/authorized_keys
检查 Windows 本机是否有私钥和公钥:
ls C:\Users\你的Windows用户名\.ssh
需要同时存在:
id_rsa
id_rsa.pub
注意:
IdentityFile 写的是私钥 id_rsa,不是 id_rsa.pub
总结
SSH 免密登录的核心是:
Windows 本机保存私钥
Linux 服务器保存公钥
如果本机没有密钥,先用:
ssh-keygen -t rsa -b 4096
生成密钥。
然后把 Windows 的公钥:
id_rsa.pub
追加到 Linux 服务器的:
~/.ssh/authorized_keys
即可实现免密登录。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)