sshd是 SSH 服务端守护进程,监听端口、验证身份、建立加密连接。ssh是客户端,sshd是服务端。
常用指令
| 指令 | 作用 |
|---|---|
systemctl start sshd | 启动服务 |
systemctl stop sshd | 停止服务 |
systemctl restart sshd | 重启服务 |
systemctl status sshd | 查看状态 |
systemctl enable sshd | 设置开机自启 |
sshd -t | 检查配置语法 |
sshd -T | 输出生效配置 |
sshd -d | 调试模式(前台运行) |
sshd -p 2222 | 临时监听指定端口 |
修改配置流程
| |
核心配置项
配置文件:/etc/ssh/sshd_config
| 配置项 | 默认值 | 常用修改 | 作用 |
|---|---|---|---|
| Port | 22 | 2222 | 修改监听端口 |
| PermitRootLogin | yes | no | 禁止 root 登录 |
| PasswordAuthentication | yes | no | 禁用密码登录 |
| PubkeyAuthentication | yes | yes | 开启公钥验证 |
| AllowUsers | 无 | user1 user2 | 白名单用户 |
调试模式
| |
常见问题
修改端口后无法连接:
- 检查防火墙/SELinux 是否放行新端口
- 云服务器需在安全组开放端口
sshd -t 报错:
- 配置项拼写错误或值错误
禁用密码后密钥无法登录:
- 客户端私钥权限:
~/.ssh/id_rsa必须是600 - 服务端
~/.ssh/authorized_keys权限600,目录700
安全加固
- 修改默认端口
- 禁用 root 登录
- 禁用密码登录(仅密钥)
- 限制允许登录的用户/IP
查看日志:journalctl -u sshd -f
注意:Ubuntu 中服务名可能是 ssh 而非 sshd
张芷铭的个人博客
Comments