Linux 系统 SSH 服务的安装与连接指南(含查看 IP 多种方法)
2026-07-22
基础学习笔记
00

目录

Linux 系统 SSH 服务的安装与连接指南(含查看 IP 多种方法)
一、先确认服务器 IP(多种查看方法)
方法 1:ip addr(最推荐,所有现代发行版自带)
方法 2:hostname -I(最省事,一行列出所有 IP)
方法 3:ifconfig(老工具,需装 net-tools)
方法 4:nmcli(用 NetworkManager 的发行版,如 CentOS/RHEL/桌面版 Ubuntu)
方法 5:通过默认路由反查(顺手确认网关)
方法 6:查公网 IP(云服务器 / 有外网时)
坑:新装的 CentOS 没 IP 怎么办
二、安装并启动 SSH 服务端(按发行版)
Ubuntu / Debian(apt)
CentOS / RHEL 7(yum)
CentOS / RHEL 8+ / Rocky / Alma(dnf)
先确认装了没有(排错常用)
关于服务名:ssh 还是 sshd
三、放行防火墙
ufw(Ubuntu / Debian 常用)
firewalld(CentOS / RHEL / Rocky)
云服务器:安全组别忘了
四、从客户端连接
五、进阶:配置静态 IP(各发行版差异)
CentOS 7:network-scripts(见第一节的坑)
CentOS 8+ / Rocky / Alma:nmcli 或 network-scripts 已弃用
Ubuntu 18.04+:Netplan(/etc/netplan/*.yaml)
临时生效(重启丢失,仅测试用)
六、排错速查
七、小结与参考资料

Linux 系统 SSH 服务的安装与连接指南(含查看 IP 多种方法)

本文记录在一台 Linux 服务器上安装并启动 SSH 服务端确认服务器 IP、以及从客户端连上去的完整做法。覆盖 Ubuntu / Debian / CentOS / RHEL / Rocky 等常见发行版,命令均经实测可照抄。

经验之谈:连不上服务器,90% 的问题出在三处——IP 不对、sshd 没起来、防火墙没放。把这三点确认好,基本都能通。

本文在通用做法基础上,融合了知识库「Linux运维」中多篇实战文章的要点(安装 ssh 服务、新装 CentOS 无 IP 的网络配置、sshd.service 排错、ip/ifconfig/Netplan 网络速查),参考资料见文末。


一、先确认服务器 IP(多种查看方法)

客户端要连服务器,第一步就是知道服务器的地址。下面这些方法,挑一个顺手的就行

方法 1:ip addr(最推荐,所有现代发行版自带)

bash
ip addr # 或简写 ip a

输出里每个网卡(如 eth0ens33lo)下面找 inet 行,那就是 IPv4 地址。lo 是回环地址 127.0.0.1,忽略它。

只看 IPv4、更干净:

bash
ip -4 addr show # 只看某个网卡 ip addr show eth0

方法 2:hostname -I(最省事,一行列出所有 IP)

bash
hostname -I # 输出示例:192.168.1.10 10.0.0.5

一条命令直接打印本机所有非回环 IPv4,适合写脚本或快速确认。

方法 3:ifconfig(老工具,需装 net-tools)

bash
ifconfig # 看全部 ifconfig eth0 # 看指定网卡

新系统默认不带,需要 sudo apt install net-toolssudo yum install net-tools。能不用就别用,方法 1 更标准。

方法 4:nmcli(用 NetworkManager 的发行版,如 CentOS/RHEL/桌面版 Ubuntu)

bash
nmcli connection show # 看连接 nmcli device status # 看设备与 IP 概况

方法 5:通过默认路由反查(顺手确认网关)

bash
ip route # 看路由表,default via 后面是网关 ip route get 1.1.1.1 # 模拟访问外网,返回出网网卡与源 IP

方法 6:查公网 IP(云服务器 / 有外网时)

上面查到的多半是内网 IP(如 192.168.x.x、10.x.x.x、172.16.x.x)。从家里或公司连云服务器,要的是公网 IP

bash
curl ifconfig.me # 或 curl icanhazip.com

区分一下:内网 IP 只能在同一个局域网内互访;公网 IP 才能从任意地方连。云服务器还要在厂商控制台的安全组里放行 22 端口(见第三节)。

坑:新装的 CentOS 没 IP 怎么办

新系统网卡经常默认没配 IP(ip a 看到 ens33 却没有 inet 行)。以 CentOS 7 为例,编辑网卡配置文件:

bash
# 先看网卡名 ip a # 编辑对应网卡配置(CentOS 7 路径) vi /etc/sysconfig/network-scripts/ifcfg-ens33

改成静态 IP(按你局域网规划填):

ini
BOOTPROTO=static # 静态 IP(dhcp 为自动获取) ONBOOT=yes # 开机启用该网卡 IPADDR=192.168.47.10 # 与子网同网段 NETMASK=255.255.255.0 GATEWAY=192.168.47.2 DNS1=223.5.5.5 DNS2=8.8.8.8
bash
systemctl restart network # 重启网络使配置生效 ip a # 再看,inet 行应该出来了

CentOS 8+ / Rocky / Ubuntu 18.04+ 改用 Netplan 或 nmcli 配静态 IP(见第五节),不再改 network-scripts


二、安装并启动 SSH 服务端(按发行版)

OpenSSH 的服务端包叫 openssh-server。不同发行版的包管理器不同,但装完启动的逻辑一致。

Ubuntu / Debian(apt)

bash
sudo apt update sudo apt install -y openssh-server # 启动并设置开机自启 sudo systemctl enable --now ssh # 确认进程在跑 ps aux | grep sshd # 确认在监听 22 端口 sudo ss -tlnp | grep :22

注意:Debian 系的服务名是 ssh,不是 sshd。所以命令是 systemctl start ssh

CentOS / RHEL 7(yum)

bash
sudo yum install -y openssh-server sudo systemctl enable --now sshd sudo ss -tlnp | grep :22

CentOS / RHEL 8+ / Rocky / Alma(dnf)

bash
sudo dnf install -y openssh-server sudo systemctl enable --now sshd sudo ss -tlnp | grep :22

先确认装了没有(排错常用)

bash
# Debian/Ubuntu dpkg -l | grep openssh-server # CentOS/RHEL rpm -qa | grep openssh-server

关于服务名:ssh 还是 sshd

遇到 Unit sshd.service not found 别慌,往往是服务名不对:

bash
# Debian/Ubuntu 用 ssh.service sudo systemctl restart ssh # CentOS/RHEL 用 sshd.service sudo systemctl restart sshd # 不确定就列出来看 ls /usr/lib/systemd/system/ | grep ssh

如果列出来是 ssh.service,就用 ssh;是 sshd.service 就用 sshd。极少老系统不是 systemd 管的,用 ps -p 1 -o comm= 看 init 类型,非 systemd 就用 service sshd restart


三、放行防火墙

sshd 起来了,但防火墙挡着照样连不上。按发行版放行 22 端口。

ufw(Ubuntu / Debian 常用)

bash
sudo ufw allow 22/tcp sudo ufw reload sudo ufw status

firewalld(CentOS / RHEL / Rocky)

bash
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload sudo firewall-cmd --list-all

云服务器:安全组别忘了

如果是云上的服务器(阿里云/腾讯云/AWS 等),系统防火墙放行还不够,还得在云控制台的安全组里加一条「允许 TCP 22」的规则,来源按需设为指定 IP 或 0.0.0.0/0。这一步漏了,从外网一样连不上。


四、从客户端连接

服务端就绪后,在另一台机器(Linux / macOS / Windows 的 PowerShell)上连:

bash
ssh 用户名@服务器IP ssh -p 2222 用户名@服务器IP # 改了端口就加 -p

首次连接会提示确认主机指纹,输入 yes 即可(指纹校验细节见《使用公钥连接 SSH》一文)。输入密码就能登录。

推荐做法:用公钥免密登录,比密码更安全也更方便。生成密钥、上传公钥、配置别名的完整步骤,见同工作区的 ssh-public-key-guide.md,本文不再重复。

服务端侧随时验证是否在监听:

bash
sudo ss -tlnp | grep :22 # 没输出 = 没监听,回头检查第二节的安装启动

五、进阶:配置静态 IP(各发行版差异)

服务器一般建议用静态 IP,避免重启后地址变了连不上。

CentOS 7:network-scripts(见第一节的坑)

修改 /etc/sysconfig/network-scripts/ifcfg-<网卡>BOOTPROTO=static + ONBOOT=yes,再 systemctl restart network

CentOS 8+ / Rocky / Alma:nmclinetwork-scripts 已弃用

nmcli 改:

bash
sudo nmcli connection modify <连接名> ipv4.method manual ipv4.addresses 192.168.1.200/24 ipv4.gateway 192.168.1.1 ipv4.dns 223.5.5.5 sudo nmcli connection up <连接名>

Ubuntu 18.04+:Netplan(/etc/netplan/*.yaml)

bash
sudo vi /etc/netplan/00-installer-config.yaml
yaml
network: ethernets: eth0: dhcp4: no addresses: [192.168.1.200/24] gateway4: 192.168.1.1 nameservers: addresses: [223.5.5.5, 8.8.8.8] version: 2
bash
sudo netplan apply

临时生效(重启丢失,仅测试用)

bash
sudo ip addr add 192.168.1.100/24 dev eth0 sudo ip link set eth0 up

六、排错速查

现象可能原因处理
Could not resolve hostnameIP/域名写错ip a 重新确认服务器地址
Connection refusedsshd 没启动 / 端口不对systemctl status ssh(或 sshd);ss -tlnp | grep :22
Connection timeout / No route to host网络不通 / 防火墙 / 安全组检查 ufw/firewalld、云安全组、能否 ping
Unit sshd.service not found服务名应为 ssh(Debian 系)ls /usr/lib/systemd/system/ | grep ssh 确认后用 ssh
内网能连、外网连不上缺路由器端口转发 / 云安全组在路由器或云控制台放行 22
新装系统没 IP网卡未配置见第一节「新装 CentOS 没 IP」
改配置后起不来sshd_config 写错sudo sshd -t 校验语法再重启

定位思路:先看 IP 对不对(第一节)→ 再看 sshd 起没起(systemctl status + ss -tlnp)→ 再看防火墙/安全组(第三节)→ 最后看 sshd 配置。日志在 /var/log/auth.log/var/log/secure,连不上时 tail 一下往往直接看到原因。


七、小结与参考资料

小结:让一台 Linux 能被 SSH 连上,核心就三步——确认 IP(第一节多种方法)、装好并启动 sshd(第二节各发行版命令,注意 Debian 系叫 ssh、RHEL 系叫 sshd)、放行防火墙与安全组(第三节)。新装系统常卡在「网卡没 IP」和「服务名写错」,按本文排错表逐一对照即可。连上后建议改用公钥登录(见 ssh-public-key-guide.md)并关闭密码登录,安全和便利都到位。

参考资料(知识库「Linux运维」)

  • 《新买的 linux 服务器 - 安装 ssh 服务并讲解含义》(码途行者)
  • 《IT 技能提升 - 新安装的 CentOS 系统没有 IP,要怎么进行网络配置》(科技小白说科技)
  • 《Linux 系统下解决 Unit sshd.service not found 和允许 Root 远程 SSH 登录的问题》(码农 DevNote)
  • 《Linux 网络管理速查:ip/ifconfig/Netplan 配置指南》(mickeylan)
  • 公钥登录详见同工作区 ssh-public-key-guide.md

ai协作,人工编辑

本文作者:张老板

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!