📝 完整配置步骤(Windows客户端 + Ubuntu服务器)
🔑 第一步:在Windows生成密钥对
- 打开命令提示符(以管理员身份运行)
:: 生成密钥对(默认路径)
ssh-keygen -t rsa -b 4096
:: 按提示操作:
:: 1. 保存路径:直接回车(默认 C:\Users\你的用户名\.ssh\id_rsa)
:: 2. 密码:直接回车(不设置密码)
:: 3. 再次确认密码:直接回车
- 查看公钥内容
type %userprofile%\.ssh\id_rsa.pub
复制输出的全部内容(从 ssh-rsa
开始到你的用户名结束)
🖥 第二步:Ubuntu服务器配置(通过当前密码登录操作)
- 登录服务器(保持此连接不要关闭!)
ssh root@192.168.1.10 -p 43572
输入当前密码
- 创建SSH目录(如果不存在)
mkdir -p ~/.ssh
chmod 700 ~/.ssh
- 添加公钥到授权文件
echo "粘贴你的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
- 修改SSH配置文件
sudo nano /etc/ssh/sshd_config
- 修改以下参数(确保完全匹配):
Include /etc/ssh/sshd_config.d/*.conf
Port 43572
PermitRootLogin prohibit-password
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
UsePAM no
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
-
保存并退出:
Ctrl+O
→ 回车 →Ctrl+X
-
重启SSH服务(不要关闭当前连接!)
sudo systemctl restart ssh
🔐 第三步:Windows测试密钥登录
- 打开新的命令提示符
:: 测试密钥登录(使用生成的私钥)
ssh -i %userprofile%\.ssh\id_rsa root@192.168.1.10 -p 43572
应直接登录成功,无需密码
- 验证密码登录已禁用
ssh root@192.168.1.10 -p 43572
应显示 Permission denied (publickey)
错误