Linux sshd 命令,OpenSSH 的守护进程

sshd 是 OpenSSH 的守护进程,用于处理来自客户端的 SSH 连接。它运行于服务器上,并通过 TCP 协议监听特定端口(默认为 22)。当有连接请求时,sshd 将创建一个子进程来处理该连接,从而允许用户进行安全登录。

安装与配置

安装

大多数 Linux 发行版默认已经安装了 OpenSSH。如果需要重新安装或更新,可以使用包管理器进行操作:

  • Debian/Ubuntu:

  • CentOS/RHEL:

配置文件

sshd 的主要配置文件位于 /etc/ssh/sshd_config。编辑这个文件可以更改 sshd 的行为。常见的配置项包括:

  • Port: 指定 sshd 监听的端口号。
  • ListenAddress: 指定 sshd 应该监听的 IP 地址。
  • PermitRootLogin: 控制是否允许 root 用户登录。
  • PasswordAuthentication: 控制是否允许基于密码的认证。
  • PubkeyAuthentication: 控制是否允许基于公钥的认证。
  • AuthorizedKeysFile: 指定存放公钥的文件路径。

重启服务

修改完配置文件后,需要重启 sshd 服务以使更改生效:

或者对于旧版本的系统:

启动与停止

启动

启动 sshd 服务可以使用以下命令:

停止

停止 sshd 服务可以使用以下命令:

开机自启

确保 sshd 在系统启动时自动启动:

检查状态

查看 sshd 服务的状态:

查看日志

查看 sshd 的日志信息可以帮助诊断问题:

或者查看传统的日志文件:

安全性设置

为了提高安全性,可以采取以下措施:

  • 限制访问: 使用防火墙规则限制对 sshd 端口的访问。
  • 禁用密码认证: 只允许基于密钥的身份验证。
  • 禁用 root 登录: 防止攻击者直接通过 root 用户登录。
  • 定期更新: 保持 OpenSSH 版本为最新,修复已知的安全漏洞。

使用密钥认证

生成密钥对并将其公钥添加到服务器上的 ~/.ssh/authorized_keys 文件中,然后在 sshd_config 中设置 PubkeyAuthentication yes

示例配置

下面是一个示例配置文件片段,展示了如何禁止密码认证和 root 登录:

常见问题与故障排除

无法连接

如果无法从客户端连接到服务器,请检查以下事项:

  • 确认 sshd 正在运行。
  • 检查防火墙设置。
  • 确保客户端和服务器之间的网络连接正常。
  • 查看服务器的日志文件以获取更多信息。

认证失败

如果认证失败,请检查:

  • 用户名和密码是否正确。
  • 公钥是否已正确添加到服务器。
  • sshd_config 文件中的认证设置。

端口冲突

如果 sshd 无法启动,可能是因为其他服务占用了默认端口(22)。可以通过以下命令检查端口占用情况:

找到占用端口的进程并终止它,或者修改 sshd_config 中的端口号。

SELinux 设置

在某些环境中,SELinux 可能会阻止 sshd 的正常运行。请确保 SELinux 设置正确:

或者编辑 /etc/selinux/config 文件永久更改设置。

以上是关于 sshd 命令的详细介绍,涵盖了安装、配置、启动、停止及常见问题的解决方法。希望这些信息对你有所帮助!

上一篇: ping 命令
下一篇: smbpasswd 命令
纠错
反馈