张芷铭的个人博客

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临时监听指定端口

修改配置流程

1
2
3
4
5
6
7
8
# 1. 编辑配置
vim /etc/ssh/sshd_config

# 2. 检查语法(关键!避免配置错误导致无法登录)
sshd -t

# 3. 重启服务
systemctl restart sshd

核心配置项

配置文件:/etc/ssh/sshd_config

配置项默认值常用修改作用
Port222222修改监听端口
PermitRootLoginyesno禁止 root 登录
PasswordAuthenticationyesno禁用密码登录
PubkeyAuthenticationyesyes开启公钥验证
AllowUsersuser1 user2白名单用户

调试模式

1
2
3
4
5
6
7
# 停止服务
systemctl stop sshd

# 前台调试,输出详细日志
sshd -d

# 此时连接,服务端打印验证过程

常见问题

修改端口后无法连接

  • 检查防火墙/SELinux 是否放行新端口
  • 云服务器需在安全组开放端口

sshd -t 报错

  • 配置项拼写错误或值错误

禁用密码后密钥无法登录

  • 客户端私钥权限:~/.ssh/id_rsa 必须是 600
  • 服务端 ~/.ssh/authorized_keys 权限 600,目录 700

安全加固

  1. 修改默认端口
  2. 禁用 root 登录
  3. 禁用密码登录(仅密钥)
  4. 限制允许登录的用户/IP

查看日志journalctl -u sshd -f

注意:Ubuntu 中服务名可能是 ssh 而非 sshd

Comments