SSH(Secure Shell)是一种网络协议,用于在不安全的网络中安全地进行远程访问和文件传输。它通过加密技术,确保通信的安全性,使得用户可以在不同的计算机之间安全地传输数据和执行命令。SSH 在 Linux 系统中被广泛使用,特别是在 Ubuntu 这样的开源操作系统中。

SSH 通过使用加密技术来保护通信的安全性。当用户连接到远程服务器时,SSH 会建立一个加密的隧道,所有的数据传输都会在这个隧道中进行加密和解密。这种加密方式可以防止黑客监听或篡改通信内容,确保数据的机密性和完整性。

SSH 还提供了身份验证机制,以确保只有授权用户可以访问远程服务器。用户可以使用密码、密钥对等方式进行身份验证,以证明自己的身份。


1. SSH 的基本概念

在使用 SSH 时,有几个基本概念是需要了解的:

  • 客户端(Client):指连接到远程服务器的计算机,通常是用户自己的计算机。

  • 服务器(Server):指远程主机,用户希望远程访问的计算机。

  • 会话(Session):指客户端与服务器之间建立的连接,用户可以在会话中执行命令、传输文件等操作。

  • 端口(Port):指网络通信中的一个逻辑连接点,SSH 默认使用 22 端口进行通信。

  • 密钥对(Key Pair):指由公钥和私钥组成的一对密钥,用于加密和解密通信内容以及进行身份验证。

2. 安装 SSH 服务

以 ubuntu 系统为例

sudo apt-get update
sudo apt-get install openssh-server

3. 检查 SSH 服务状态

sudo systemctl status ssh

正常显示Active:active(running)​即表示 ssh 服务已开启

ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/usr/lib/systemd/system/ssh.service; enabled; preset: enabled)
     Active: active (running) since Mon 2025-12-22 12:51:27 CST; 8s ago
TriggeredBy: ● ssh.socket
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 699992 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
   Main PID: 699994 (sshd)
      Tasks: 1 (limit: 18755)
     Memory: 2.1M (peak: 2.6M)
        CPU: 13ms
     CGroup: /system.slice/ssh.service
             └─699994 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
12月 22 12:51:27 MaxUbuntu systemd[1]: Starting ssh.service - OpenBSD Secure Shell server...
12月 22 12:51:27 MaxUbuntu sshd[699994]: Server listening on 0.0.0.0 port 22.
12月 22 12:51:27 MaxUbuntu sshd[699994]: Server listening on :: port 22.
12月 22 12:51:27 MaxUbuntu systemd[1]: Started ssh.service - OpenBSD Secure Shell server.

如果没有正常启动可执行如下命令:

sudo systemctl enable ssh
sudo systemctl start ssh

4. 配置 SSH 服务

默认情况下,OpenSSH 服务器的配置文件位于 /etc/ssh/sshd_config。可以根据需要修改此文件来进行自定义配置。例如,可以更改 SSH 服务器的监听端口、允许或禁止密码登录、限制登录用户等。

具体说明man sshd​参考。

5. 配置 SSH 防火墙规则

5.1 检查防火墙状态

sudo ufw status

如果显示防火墙未启用,执行以下命令启用防火墙并添加 ssh 规则:

sudo ufw enable
sudo ufw allow OpenSSH

5.2 验证 SSH 防火墙规则状态

sudo ufw status | grep ssh

正常应该显示如下信息:

Status: active
To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere

6. 测试 SSH 连接

6.1 获得服务器 ip

ip addr | grep inet

6.2 客户端连接测试

在客户端输入如:

ssh root@192.168.1.30 -p 22

如果为默认端口22,后面的 -p 22 可以省略,如果非默认端口需指定。

如果这是您第一次连接到服务器,系统可能会要求您输入密码。输入您的密码并按下 Enter 键。

如果您首次连接到服务器并成功验证身份,系统可能会显示一条消息询问您是否愿意继续连接。输入 yes 并按下 Enter 键。

正常输入密码后会显示欢迎界面:

Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-161-generic x86_64)
 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro
Welcome to Alibaba Cloud Elastic Compute Service !
Last login: Sun Dec 21 16:47:54 2025 from 110.6.168.85

这意味着您已经成功通过 SSH 连接到您的 Ubuntu 服务器。

7. SSH 客户端推荐

  • PuTTY:一个广泛使用的SSH客户端,支持Windows和Linux平台。

  • MobaXterm:集成了多种网络工具的SSH客户端,适合Windows用户。

  • Xshell:功能强大的SSH客户端,支持多标签和脚本功能,适合专业用户。

  • Termius:跨平台的SSH客户端,支持Windows、Mac、Linux和移动设备。

  • WinSCP:除了SSH功能外,还支持SFTP和FTP,适合文件传输。

  • FinalShel:一体化的的服务器网络管理软件,不仅是ssh客户端,还是功能强大的开发,运维工具,充分满足开发,运维需求.

这些工具可以帮助用户安全地远程连接服务器,提升管理效率。