一、环境准备
-
本地系统:Windows 10/11(需启用 OpenSSH 客户端)
-
远程服务器:任意 Linux 发行版(需开启 SSH 服务)
-
工具:系统自带 PowerShell 或 Git Bash(推荐)
二、操作步骤
步骤 1:在 Windows 上生成 SSH 密钥对
-
打开 PowerShell 或 Git Bash
-
按
Win + S
搜索 "PowerShell" 或安装 Git Bash。
-
-
生成密钥对
输入以下命令:ssh-keygen -t rsa -b 4096
-
-t rsa
:指定密钥类型为 RSA -
-b 4096
:密钥长度(可选)
-
-
设置保存路径
-
默认路径:
C:\Users\你的用户名\.ssh\id_rsa
-
直接回车使用默认路径,无需设置密码(连续按 3 次回车):
Enter passphrase (empty for no passphrase): [直接回车] Enter same passphrase again: [直接回车]
(配图说明:密钥生成过程的命令行截图) -
步骤 2:将公钥上传到 Linux 服务器
方法一:通过 ssh-copy-id
自动上传(推荐)
-
执行以下命令(替换
用户名
和服务器IP
):ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@服务器IP
-
输入服务器密码,公钥会自动添加到
~/.ssh/authorized_keys
。
方法二:手动上传(适合无 ssh-copy-id
环境)
-
查看公钥内容:
cat ~/.ssh/id_rsa.pub
复制输出内容(以
ssh-rsa AAAAB3...
开头)。 -
登录服务器并配置:
ssh 用户名@服务器IP mkdir -p ~/.ssh echo "粘贴你的公钥" >> ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
步骤 3:验证免密登录
在 Windows 终端执行:
ssh 用户名@服务器IP
-
成功标志:直接登录服务器,无需输入密码
-
失败排查:检查服务器
.ssh
目录权限是否为700
,authorized_keys
权限是否为600
三、总结
通过 SSH 密钥对实现免密登录,既能提升操作效率,又比密码登录更安全。整个过程仅需 3 步:
-
生成密钥对
-
上传公钥到服务器
-
验证登录
附录:
-
OpenSSH 官方文档
-
所有命令均通过 Windows 11 + Ubuntu 22.04 测试验证