Ubuntu 系统中配置 SSH 服务教程

343 阅读2分钟

一、什么是 SSH?

SSH(Secure Shell)是一种加密的网络协议,用于在不安全的网络中安全地进行远程登录、远程命令执行和文件传输。它是 Telnet、FTP 等传统协议的安全替代品。


二、确认系统环境

在开始配置之前,请确认你的系统版本和网络情况。

lsb_release -a
ip a

确保:

  • Ubuntu 系统版本在支持范围内(一般 Ubuntu 16.04 及以上都可)
  • 系统已联网(本地局域网或公网皆可)

三、安装 SSH 服务

Ubuntu 默认未启用 OpenSSH 服务,需要手动安装:

sudo apt update
sudo apt install openssh-server

安装完成后,系统会自动启动 SSH 服务。


四、检查 SSH 服务状态

执行以下命令来确认 SSH 服务是否运行中:

sudo systemctl status ssh

如果看到如下内容,说明服务运行正常:

● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled)
   Active: active (running)

如果服务未启动,可以手动启动:

sudo systemctl start ssh

设置为开机自动启动:

sudo systemctl enable ssh

五、配置 SSH 服务(可选)

SSH 的配置文件路径为:

/etc/ssh/sshd_config

使用编辑器打开:

sudo nano /etc/ssh/sshd_config

常见配置项说明:

  • Port 22:设置监听端口(可修改为其他端口增强安全性)
  • PermitRootLogin no:是否允许 root 用户登录
  • PasswordAuthentication yes/no:是否允许密码登录(设为 no 可增强安全性,但需先配置好密钥登录)

修改后保存并重启服务:

sudo systemctl restart ssh

六、测试 SSH 连接

在另一台设备(如你的开发主机)上使用终端连接:

ssh 用户名@目标IP

例如:

ssh ubuntu@192.168.1.100

如果是第一次连接,会提示是否接受主机密钥,输入 yes 即可。


七、设置密钥登录(增强安全性)

生成 SSH 密钥对(客户端):

ssh-keygen

将公钥复制到 Ubuntu 主机:

ssh-copy-id 用户名@目标IP

成功后即可无密码登录,建议将 sshd_config 中的密码登录禁用:

PasswordAuthentication no

重启服务:

sudo systemctl restart ssh

八、防火墙设置(如有)

如果你启用了 UFW 防火墙,需要放行 SSH 端口:

sudo ufw allow ssh
sudo ufw enable

九、常见问题排查

问题解决方法
无法连接检查 IP 是否正确,SSH 服务是否运行,防火墙是否放行端口
密钥登录失败检查权限是否正确(~/.ssh/authorized_keys 权限为 600)
SSH 登录慢可编辑 /etc/ssh/sshd_config,添加 UseDNS no