LINUX
SSH 连接配置:双服务器免密登录
配置 WSL 到云服务器与内网主机的 SSH 密钥认证,含 scp/sftp 文件传输备忘。
本文目录 · 6 节
本文只保留通用写法:服务器地址、登录用户名和家目录一律写成占位符,请替换成自己的值。真实的 IP、账号与密钥路径不要写进公开页面。
SSH 配置文件
WSL 中的 ~/.ssh/config(示例):
Host myserver
HostName <云服务器公网 IP>
User <登录用户>
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 60
ServerAliveCountMax 3
Host homebox
HostName <内网主机 IP>
User <登录用户>
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 60
两端可以共用同一把 id_ed25519;也可以用 IdentitiesOnly yes 给不同主机指定不同密钥。配置好之后只需:
ssh myserver # 云服务器
ssh homebox # 内网主机
密钥配置(已完成)
生成密钥(-C 后面的注释只用于自己辨识,建议不要写真实邮箱或服务器信息):
ssh-keygen -t ed25519 -C "workstation"
复制公钥到两台服务器(各需输入一次密码):
ssh-copy-id -i ~/.ssh/id_ed25519.pub myserver
ssh-copy-id -i ~/.ssh/id_ed25519.pub homebox
生产服务器建议再收紧一步:在 /etc/ssh/sshd_config 里设置 PasswordAuthentication no、PermitRootLogin prohibit-password,确认密钥登录可用后再关闭密码登录。
主机密钥变更处理
重装系统后出现 REMOTE HOST IDENTIFICATION HAS CHANGED 是正常现象:
ssh-keygen -f ~/.ssh/known_hosts -R <云服务器公网 IP>
更省事的做法是删掉对应行,或者直接用 ssh -o StrictHostKeyChecking=accept-new 重新写入。确认指纹无误再接受,不要习惯性忽略这条警告。
重装记录
| 日期 | 操作 |
|---|---|
| 2026-07-12 | 初装:OpenCloudOS 9.6 + 宝塔面板 |
| 2026-07-12 | 重装:Debian 13 (trixie) 裸机 |
| 2026-07-13 | 清除旧主机指纹 + ssh-copy-id 配置免密 |
快速验证
ssh myserver 'hostname'
ssh homebox 'hostname'
SCP 文件传输备忘
# 上传到云服务器
scp localfile.txt myserver:/home/<登录用户>/
# 从云服务器下载
scp myserver:/home/<登录用户>/data.txt .
# 上传到内网主机
scp localfile.txt homebox:/home/<登录用户>/
频繁传输大文件时优先用 rsync -avz --partial,断点续传比 scp 省事;不要在公网上用 root 账号直接传文件,日常操作使用普通用户 + sudo。