linux怎么看ssh
linux怎么看ssh详细介绍
在 Linux 系统中查看和管理 SSH(Secure Shell)服务的相关信息,可以通过以下命令和方法实现。以下内容涵盖了从基础状态检查到高级配置的全流程操作,适用于不同 Linux 发行版(如 Ubuntu、CentOS、Fedora 等)。
一、检查 SSH 服务是否安装
- 使用包管理器查询
- Debian/Ubuntu:bash
dpkg openssh-server - CentOS/Fedora/RHEL:bash
openssh-server
如果未安装,可通过以下命令安装:
- Debian/Ubuntu:bash
openssh-server - CentOS/Fedora/RHEL:bash
yum openssh-serverdnf openssh-server
- Debian/Ubuntu:bash
二、查看 SSH 服务状态
- 使用 systemctl(推荐)
bashsystemctl status sshdsystemctl status
输出结果中若显示
active (running),表示服务正在运行;若为inactive (dead),则需启动服务:
bashsystemctl start sshdsystemctl start
- 使用 service 命令(旧版系统)
bashsshd statusstatus
- 查看进程
bashsshd若输出包含
sshd进程(如root 2254 1 0 18:31 ? 00:00:00 /usr/sbin/sshd),表示服务正在运行。
三、查看 SSH 配置文件
SSH 服务器的主配置文件为 /etc/ssh/sshd_config,可通过以下命令查看:
bash
/etc/ssh/sshd_config
常见配置项包括:
Port 22:默认监听端口。PermitRootLogin yes/no:是否允许 root 用户直接登录。PasswordAuthentication yes/no:是否允许密码认证。
修改配置后,需重启服务使生效:
bash
systemctl restart sshdsystemctl restart
四、查看 SSH 连接信息
- 查看当前监听端口
bashsshd输出示例:
plaintexttcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 22109/sshd表示 SSH 服务正在监听 22 端口。
- 查看已建立的连接
bashESTABLISHED或使用更简洁的
ss命令(需安装iproute2包):
bashss :22
五、查看 SSH 日志
- 实时查看登录日志
bash/var/log/auth.log/var/log/secure
可过滤特定关键词(如
sshd):
bash/var/log/auth.log sshd - 查看历史日志
bashjournalctl sshdjournalctl sshd
六、其他实用命令
- 查看 SSH 版本
bash输出示例:
OpenSSH_8.2p1 Ubuntu-4ubuntu0.5, OpenSSL 1.1.1f 31 Mar 2020。 - 查找 SSH 命令路径
bash输出示例:
ssh: /usr/bin/ssh /usr/share/man/man1/ssh.1.gz。 - 生成 SSH 密钥对
bashssh-keygen rsa生成的密钥默认存放在
~/.ssh/目录下。 - 验证 SSH 主机密钥指纹
bashssh-keygen md5 /etc/ssh/ssh_host_rsa_key.pub输出示例:
2048 MD5:xx:xx:xx... (RSA)。
七、常见问题排查
- 连接失败
- 检查防火墙是否放行 22 端口:bash
ufw statusfirewall-cmd --list-ports
若未放行,添加规则:bash
ufw allow /tcpfirewall-cmd --add-port/tcp
firewall-cmd
- 检查防火墙是否放行 22 端口:bash
- SELinux 限制
- 若修改了 SSH 端口(如 2222),需更新 SELinux 策略:bash
semanage port ssh_port_t tcp
- 若修改了 SSH 端口(如 2222),需更新 SELinux 策略:bash
- 服务无法启动
- 检查配置文件语法错误:bash
sshd - 若提示
Address already in use,表示端口被占用,可修改sshd_config中的Port并重启服务。
- 检查配置文件语法错误:bash
八、远程连接示例
- 基本连接
bashusername@remote_host若远程主机端口非默认 22,需指定端口:
bashusername@remote_host - 使用密钥认证
- 将本地公钥(
~/.ssh/id_rsa.pub)添加到远程主机的~/.ssh/authorized_keys文件中:bashssh-copy-id username@remote_host
- 将本地公钥(
通过以上命令和方法,可全面查看和管理 Linux 系统中的 SSH 服务。若需进一步调整配置或解决复杂问题,建议参考官方文档或社区资源。