一、什么是 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 serverLoaded: 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 登录慢 | 可编辑 |