ssh配置
SSH 配置汇总整理
这份文档主要整理两个核心步骤:
- SSH 的密钥登录流程配置
- 服务器上 SSH 配置更改,比如更改端口、关闭密码登录
内容根据当前目录下已有文档归纳,代码块尽量保持原样,只做顺序整理和说明。
0. SSH 配置流程图
flowchart TD |
1. SSH 密钥登录的原理
SSH 密钥登录的核心就是生成一对密钥:
- 公钥放到服务器对应用户的
~/.ssh/authorized_keys - 私钥保存在你自己的本地电脑
假设你要登录的用户是 root:
/root/.ssh/authorized_keys |
普通用户则是:
/home/username/.ssh/authorized_keys |
2. 服务器上生成密钥并写入 authorized_keys
已有文档里的做法是先在服务器上检查 ~/.ssh 目录,如果有不需要的密钥,先清理掉,然后生成新的密钥。
在服务器上执行:
ssh-keygen -t ed25519 -C "my_server_key" |
然后执行:
cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys |
这样就把公钥写入服务器的 authorized_keys 里了。
3. 把私钥保存到本地
私钥要复制到你自己的本地电脑,而且要复制完整。
私钥权限也要正确:
chmod 600 ~/id_ed25519_server |
私钥自己保存好,不要泄露。
4. 先测试 SSH 密钥登录
先用私钥测试是否能正常登录服务器。
例如:
ssh -i ~/id_ed25519_server zxz@192.168.10.100 |
如果服务器 SSH 端口不是默认的 22,那就加上 -p:
ssh -p 6000 zxz@124.221.129.28 |
也可以同时指定私钥和端口:
ssh -i ~/id_rsa_tenxun -p 6000 zxz@124.221.129.28 |
这里的重点是:
- 先确认密钥登录真的能用
- 再去改 SSH 服务端配置
- 不要还没测试成功就直接关闭密码登录
5. 服务器上的 SSH 配置文件
配置文件路径:
sudo vim /etc/ssh/sshd_config |
这一步主要是改 SSH 服务端的登录方式和端口。
6. 如果暂时允许密码登录
如果你还在过渡阶段,原文档里给的配置是:
PermitRootLogin yes |
这表示:
- 允许 root 登录
- 允许密码登录
- 允许公钥登录
7. 改成只允许密钥登录
如果已经确认密钥登录没问题,就可以改成只允许密钥登录:
PermitRootLogin prohibit-password |
这表示:
- root 不允许用密码登录
- 禁止密码登录
- 允许公钥登录
8. 更改 SSH 端口
已有内容里举例用到了非默认端口,比如:
ssh -p 6000 zxz@124.221.129.28 |
所以在服务端配置里,如果你要改端口,通常就是在 sshd_config 里把端口改掉,然后重启 SSH 服务。
文档里虽然没有单独给出 Port 的配置块,但实际理解上就是类似这种改法:
Port 6000 |
如果你改了端口,那么以后连接时就要对应带上 -p 参数,例如:
ssh -p 6000 zxz@124.221.129.28 |
另外要记得,如果改了 SSH 端口,还要同步检查服务器防火墙、安全组、云防火墙是否已经放行这个新端口,不然即使 sshd_config 改对了,也可能重新连不上。
9. 修改 SSH 配置后的顺序
这里整理成一个比较顺的流程:
- 先在服务器上生成密钥
- 把公钥写入
~/.ssh/authorized_keys - 设置
.ssh和authorized_keys权限 - 把私钥保存到本地,并设置好权限
- 用私钥先测试登录
- 编辑
/etc/ssh/sshd_config - 如果要改端口,就先改端口
- 如果要关闭密码登录,就在确认密钥登录成功后再改
- 重启 SSH 服务
- 用新的端口重新测试登录
10. 最终要记住的核心点
- 密钥登录的本质是“服务器保存公钥,本地保存私钥”
- 服务器端常见关键文件是
~/.ssh/authorized_keys - 私钥权限通常要正确,否则 SSH 会拒绝使用
/etc/ssh/sshd_config是 SSH 服务端的核心配置文件- 常见 SSH 服务端修改就是:
- 修改端口
- 关闭密码登录
- 保留公钥登录
- 一定是先验证密钥登录成功,再关闭密码登录