1.ubuntu24.04 ssh服务名称到底是ssh还是sshd?
在 Ubuntu 24.04 中,管理 SSH 服务的标准服务名称是 ssh。
虽然在很多 Linux 发行版中习惯使用 sshd,但在 Ubuntu 中情况有所不同:
首选服务名:使用 ssh。例如:sudo systemctl restart ssh
新变化(Socket 激活):从 Ubuntu 24.04 开始,默认改用了 ssh.socket 来管理连接。这意味着 SSH 守护进程不再始终运行,而是在有连接请求时才由 systemd 启动。
启动/停止:建议使用 sudo systemctl start ssh.socket
修改配置后:如果修改了端口等设置,通常需要执行 sudo systemctl daemon-reload 然后重启 socket:sudo systemctl restart ssh.socket。
兼容性:虽然 sshd 在某些版本中是 ssh 的别名,但在 24.04 中,直接使用 systemctl restart sshd 可能会报错“Unit sshd.service not found”。
总结操作命令:
- 查看状态:
sudo systemctl status ssh - 重启服务:
sudo systemctl restart ssh - 应用端口修改:
sudo systemctl restart ssh.socket
2.配置文件到底是ssh_config还是sshd_config?
在 Ubuntu 24.04 中,你需要修改的配置文件是 sshd_config。
虽然服务名在 Ubuntu 里叫 ssh,但这两个配置文件的用途完全不同:
核心区别
sshd_config (服务端配置):控制别人如何连接你的电脑。
路径:/etc/ssh/sshd_config
常见操作:修改 SSH 端口、禁止 root 登录、配置公钥认证等。
ssh_config (客户端配置):控制你如何连接别人的电脑。
路径:/etc/ssh/ssh_config
常见操作:设置默认的连接参数、代理转发等。
Ubuntu 24.04 的特殊机制
在 Ubuntu 24.04 中,如果你修改了 sshd_config 中的 Port (端口),请务必执行以下步骤,否则新端口可能不会生效:
- 修改文件:
sudo nano /etc/ssh/sshd_config - 重载 systemd(关键):
sudo systemctl daemon-reload - 重启 Socket 服务:
sudo systemctl restart ssh.socket
这是因为 24.04 默认使用 Systemd Socket Activation 机制,端口是由 systemd 预先监听的,而不是由 sshd 进程直接管理。
此外,Ubuntu 24.04 推荐将自定义配置放在 /etc/ssh/sshd_config.d/ 目录下的 .conf 文件中,这样在系统升级时更容易管理。
3.如何设置允许Root用户登陆
在 Ubuntu 24.04 中,开启 Root 用户登录 SSH 需要完成三个步骤:设置 Root 密码、修改 SSH 服务端配置、以及处理 Socket 激活机制。
第一步:设置 Root 用户密码
Ubuntu 默认不设置 Root 密码,必须先手动设置一个,否则无法验证登录sudo passwd root
第二步:修改 sshd_config 配置文件
使用编辑器打开服务端配置文件sudo nano /etc/ssh/sshd_config
找到 PermitRootLogin 这一行(可能被注释掉了),修改为:PermitRootLogin yes
注:如果该行是 PermitRootLogin prohibit-password,表示只允许密钥登录,需改为 yes 以允许密码登录。
第三步:使配置生效(针对 Ubuntu 24.04)
由于 Ubuntu 24.04 默认使用 Socket 激活 模式,直接重启 ssh 服务可能不彻底,建议按顺序执行以下命令:
# 重新加载 systemd 配置
sudo systemctl daemon-reload
# 重启 Socket(确保监听生效)
sudo systemctl restart ssh.socket
# 重启 SSH 服务本身
sudo systemctl restart ssh
暂无评论