怎么查看linux开启ssh
怎么查看linux开启ssh详细介绍
在 Linux 系统中,查看 SSH 服务是否开启及运行状态可通过以下多种方法实现,涵盖服务状态检查、端口监听验证、防火墙配置排查等维度:
一、服务状态检查
1.
systemctl 命令(systemd 系统)
- 检查服务运行状态:bash
systemctl status sshdsystemctl status
- 输出解读:
active (running):服务正在运行。inactive (dead):服务未运行。- 绿色●表示服务正常,红色 × 表示服务异常。
- 输出解读:
- 查看服务开机自启状态:bash
systemctl is-enabled sshd- 输出
enabled表示已设置开机自启,disabled则相反。
- 输出
2.
service 命令(兼容 systemd/SysVinit)
- 检查服务状态:bash
sshd statusstatus
- 启动 / 停止服务:bash
sshd startsshd stop
sshd restart
3.
chkconfig 命令(旧版系统)
- 查看服务运行级别配置:bash
sshd- 输出示例:
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off,表示服务在运行级别 2-5 自动启动。
- 输出示例:
二、端口监听验证
1.
netstat 命令
- 查看端口 22 是否监听:bash
:22- 输出示例:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN,表示 SSH 服务正在监听 TCP 端口 22。
- 输出示例:
2.
ss 命令(推荐,更高效)
- 替代 netstat:bash
ss :22
3.
lsof 命令
- 查看端口占用进程:bash
:22- 输出包含进程 ID(PID)和服务名称(如
sshd)。
- 输出包含进程 ID(PID)和服务名称(如
三、防火墙配置排查
1.
firewalld(Fedora/CentOS 7+)
- 查看开放端口:bash
firewall-cmd --list-ports- 检查是否包含
22/tcp。
- 检查是否包含
- 临时开放端口:bash
firewall-cmd --add-port/tcp - 永久开放端口:bash
firewall-cmd --add-port/tcpfirewall-cmd
2.
ufw(Ubuntu/Debian)
- 查看防火墙状态:bash
ufw status - 允许 SSH 连接:bash
ufw allow
3.
iptables(通用)
- 查看规则:bash
iptables --line-numbers- 检查是否有允许 TCP 端口 22 的规则。
四、配置文件检查
- 查看 SSH 配置文件:bash
/etc/ssh/sshd_config- 关键参数:
Port 22:监听端口(默认 22)。PermitRootLogin yes/no:是否允许 root 用户登录。PasswordAuthentication yes/no:是否允许密码认证。
- 关键参数:
五、综合验证
- 测试本地连接:bash
localhost- 若提示输入密码,说明 SSH 服务正常运行。
- 远程连接测试:bash
username@your_server_ip- 若连接成功,说明服务和防火墙配置均正常。
六、常见问题处理
- 服务未运行:bash
systemctl start sshdsystemctl sshd
- 端口被占用:bash
/tcp - 防火墙拦截:
- 确保防火墙规则允许端口 22,或临时关闭防火墙测试(仅用于排查):bash
systemctl stop firewalldufw disable
- 确保防火墙规则允许端口 22,或临时关闭防火墙测试(仅用于排查):bash
七、验证工具
- nmap 扫描:bash
nmap your_server_ip- 若显示
22/tcp open,说明端口开放。
- 若显示
- telnet 测试:bash
telnet your_server_ip- 若成功连接,会显示 SSH 协议版本信息。
通过以上方法,可全面验证 SSH 服务的运行状态、端口监听情况及防火墙配置。若仍无法连接,建议查看日志文件(如/var/log/secure或/var/log/auth.log)获取详细错误信息。