通过 SSH 连接远程 Ubuntu 服务器
目录
- 安装 SSH 服务器
- 允许 SSH 通过防火墙
- 远程 SSH 连接
- (选)重启向日葵
安装 SSH 服务器
- 更新软件包列表
sudo apt update
- 安装 OpenSSH 服务器
sudo apt install openssh-server
- 检查 SSH 服务器状态
sudo systemctl status ssh
如果 SSH 服务器正在运行,会出现如下的输出:
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor prese>
Active: active (running) since Wed 2024-11-06 18:11:36 CST; 11min ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 7247 (sshd)
Tasks: 1 (limit: 4387)
Memory: 2.7M
CGroup: /system.slice/ssh.service
└─7247 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
Nov 06 18:11:36 abc-Default-string systemd[1]: Starting OpenBSD Secure She>
Nov 06 18:11:36 abc-Default-string sshd[7247]: Server listening on 0.0.0.0>
Nov 06 18:11:36 abc-Default-string sshd[7247]: Server listening on :: port>
Nov 06 18:11:36 abc-Default-string systemd[1]: Started OpenBSD Secure Shel>
Nov 06 18:13:18 abc-Default-string sshd[8311]: Accepted password for abc f>
Nov 06 18:13:18 abc-Default-string sshd[8311]: pam_unix(sshd:session): ses>
Nov 06 18:13:54 abc-Default-string sshd[8471]: Accepted password for abc f>
Nov 06 18:13:54 abc-Default-string sshd[8471]: pam_unix(sshd:session): ses>
显示 Active: active (running)
,表示 SSH 服务器正在运行,如下图所示。
- 配置 SSH 服务器(可选)
默认情况下,OpenSSH 服务器的配置文件位于 /etc/ssh/sshd_config
,可以根据需要修改此文件来进行自定义配置。例如,更改 SSH 服务器的监听端口、允许或禁止密码登录、限制登录用户等。
允许 SSH 通过防火墙
防火墙(ufw, Uncomplicated Firewall)
- 启用防火墙(如果尚未启用)
sudo ufw enable
询问是否继续启用防火墙。输入 y 并按下 Enter 键继续。
- 检查防火墙状态
sudo ufw status
如果防火墙已经启用,会出现如下的输出:
Status: active
To Action From
-- ------ ----
20/tcp ALLOW Anywhere
21/tcp ALLOW Anywhere
22/tcp ALLOW Anywhere
如果防火墙尚未启用,您会看到输出
Status: inactive
,表明防火墙当前处于禁用状态
- 允许 SSH 通过防火墙
如果防火墙已启用但未允许 SSH 通过,则需要添加 SSH 规则
sudo ufw allow OpenSSH
出现如下输出,表示添加成功,如下图所示。
- 验证防火墙规则
sudo ufw status
如果防火墙已成功配置为允许 SSH 服务通过,会显示如下输出:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
远程 SSH 连接
- 查看目标服务器 IP 地址
ip addr show | grep inet
或
ifconfig
- 使用 SSH 远程连接到服务器
ssh [username]@[server_ip_address[
将 [username]
替换为您在服务器上的用户名, [server_ip_address]
替换为目标服务器 IP 地址
例如,如果远程服务器的用户名是 user,远程服务器的 IP 地址是 192.168.1.100,则命令如下:
ssh user@192.168.1.100
- 验证身份
如果是首次连接到服务器,系统可能会显示一条消息询问是否愿意继续连接。输入 yes 并按下 Enter 键,如下图所示。
如果这是第一次连接到服务器,系统可能会要求输入密码,输入密码后按下 Enter 键。
注:在命令行中输入密码时,密码是不显示的,直接输入并回车即可
- 连接成功
出现如下输出,表示已成功连接到服务器:
Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-42-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
...
Ref: 如何在 Ubuntu 上启用 SSH(适用于 20.04、22.04)?
(选)重启向日葵
- 查看向日葵运行状态
sudo systemctl status runsunloginclient.service
- 启动向日葵开机自启
如果状态不是active,执行以下命令,设置为开机自启动
sudo systemctl enable runsunloginclient.service
- 启动向日葵服务
sudo systemctl start runsunloginclient.service
- 查看远程设备码
注意验证码必须是永久验证码,否则重启后还是无法连接,如下图所示。
- 查看向日葵进程状态
ps -ef | grep sun
- 关闭向日葵进程
将 --mod=service
和 --cmd=autorun
的进程 kill
掉
kill 860
kill 4242
- 重启进程
/usr/local/sunlogin/bin/sunloginclient --mod=service
/usr/local/sunlogin/bin/sunloginclient --cmd=autorun
- 启动向日葵进程
路径为向日葵默认安装路径
sudo /usr/local/sunlogin/bin/sunloginclient
- 连接失败
尝试重启后再重新连接,若重启后连接失败,另寻他法
Ref: Linux远程命令行终端启动向日葵