一、简介
SSH(Secure Shell)是一种网络协议,用于在不安全的网络中安全地进行远程访问和文件传输。它通过加密技术,确保通信的安全性,使得用户可以在不同的计算机之间安全地传输数据和执行命令。SSH 在 Linux 系统中被广泛使用,特别是在 Ubuntu 这样的开源操作系统中。
SSH 通过使用加密技术来保护通信的安全性。当用户连接到远程服务器时,SSH 会建立一个加密的隧道,所有的数据传输都会在这个隧道中进行加密和解密。这种加密方式可以防止黑客监听或篡改通信内容,确保数据的机密性和完整性。
SSH 还提供了身份验证机制,以确保只有授权用户可以访问远程服务器。用户可以使用密码、密钥对等方式进行身份验证,以证明自己的身份。
SSH是两台计算机进行ROS通信的一种很实用的办法
二、SSH 的基本概念
在使用 SSH 时,有几个基本概念是需要了解的:
户端(Client):指连接到远程服务器的计算机,通常是用户自己的计算机。服务器(Server):指远程主机,用户希望远程访问的计算机。会话(Session):指客户端与服务器之间建立的连接,用户可以在会话中执行命令、传输文件等操作。端口(Port):指网络通信中的一个逻辑连接点,SSH 默认使用 22 端口进行通信。密钥对(Key Pair):指由公钥和私钥组成的一对密钥,用于加密和解密通信内容以及进行身份验证。三、SSH 的版本
SSH 有几个不同的版本,其中最常见的是 SSH-1 和 SSH-2。SSH-1 是较早的版本,存在一些安全漏洞和性能问题,已经逐渐被淘汰。SSH-2 是当前广泛使用的版本,它修复了 SSH-1 中的一些安全问题,并提供了更强大的加密算法和身份验证机制。
在 Ubuntu 20.04 ,22.04 和24.04 版本中,默认安装的是 OpenSSH 包,它支持 SSH-2 协议,并提供了一套完整的 SSH 客户端和服务器工具。
四、安装SSH服务器
在 Ubuntu 上安装 SSH 服务器非常简单。
步骤 1:更新软件包列表
在安装任何软件之前,最好先更新一下系统的软件包列表,以确保安装的软件是最新的版本。打开终端,执行以下命令:
sudo apt update
步骤 2:安装 OpenSSH 服务器
在 Ubuntu 中,OpenSSH 是最常见的 SSH 服务器实现。您可以使用以下命令安装 OpenSSH 服务器:
sudo apt install openssh-server
系统会提示您输入密码以确认安装,输入密码后按下 Enter 键继续。
步骤 3:检查 SSH 服务器状态
安装完成后,SSH 服务器会自动启动。您可以使用以下命令检查 SSH 服务器的状态:
sudo systemctl status ssh
如果 SSH 服务器正在运行,您将看到类似如下的输出:
lll@lll:~$ sudo systemctl status ssh● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2024-07-10 13:58:31 CST; 2min 45s ago Docs: man:sshd(8) man:sshd_config(5) Process: 786 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS) Main PID: 818 (sshd) Tasks: 1 (limit: 18732) Memory: 3.4M CPU: 26ms CGroup: /system.slice/ssh.service └─818 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"7月 10 13:58:31 lll systemd[1]: Starting OpenBSD Secure Shell server...7月 10 13:58:31 lll sshd[818]: Server listening on 0.0.0.0 port 22.7月 10 13:58:31 lll sshd[818]: Server listening on :: port 22.7月 10 13:58:31 lll systemd[1]: Started OpenBSD Secure Shell server.
您可以看到 Active: active (running),表示 SSH 服务器正在运行。
步骤 4:配置 SSH 服务器(可选)
默认情况下,OpenSSH 服务器的配置文件位于 /etc/ssh/sshd_config。您可以根据需要修改此文件来进行自定义配置。例如,您可以更改 SSH 服务器的监听端口、允许或禁止密码登录、限制登录用户等。
五、允许 SSH 通过防火墙
在 Ubuntu 中允许 SSH 通过防火墙(通常是 ufw,即 Uncomplicated Firewall)非常重要,以确保远程访问的安全性。
步骤 1:检查防火墙状态
首先,您需要检查系统上的防火墙是否已启用,并了解其当前配置。在终端中执行以下命令:
sudo ufw status
如果防火墙已经启用,您会看到类似以下的输出:
Status: activeTo Action From-- ------ ----OpenSSH ALLOW Anywhere
如果防火墙尚未启用,您会看到输出 Status: inactive
,表明防火墙当前处于禁用状态。
步骤 2:允许 SSH 通过防火墙
如果防火墙已启用但未允许 SSH 通过,则需要执行以下命令来添加 SSH 规则:
sudo ufw allow OpenSSH
这将在防火墙规则中添加一个允许 SSH 服务通过的条目。
步骤 3:启用防火墙(如果尚未启用)
如果防火墙尚未启用,您需要执行以下命令来启用防火墙:
sudo ufw enable
您将收到一个提示,询问是否继续启用防火墙。输入 y 并按下 Enter 键继续。
步骤 4:验证防火墙规则
最后,您可以再次运行 sudo ufw status
命令来验证 SSH 是否已成功添加到防火墙规则中。如果一切正常,您应该会看到类似以下的输出:
Status: activeTo Action From-- ------ ----OpenSSH ALLOW Anywhere
这表示防火墙已成功配置为允许 SSH 服务通过。
六、测试 SSH 连接
要测试 SSH 连接,您可以使用 SSH 客户端尝试连接到您的 Ubuntu 服务器。
步骤 1:获取服务器 IP 地址
首先,您需要获取您的 Ubuntu 服务器的 IP 地址。您可以在终端中运行以下命令来查看:
ip addr show | grep inet
这将列出所有网络接口的 IP 地址。找到您的服务器的 IP 地址并记下来。
步骤 2:使用 SSH 客户端连接到服务器
在您的本地计算机上打开终端,并执行以下命令来连接到您的 Ubuntu 服务器:
ssh username@server_ip_address
在这个命令中,将 username
替换为您在服务器上的用户名,server_ip_address
替换为您在步骤 1 中找到的服务器 IP 地址。
例如,如果您的用户名是 user
,服务器的 IP 地址是 192.168.1.100
,则命令如下:
ssh user@192.168.1.100
步骤 3:输入密码(如果需要)
如果这是您第一次连接到服务器,系统可能会要求您输入密码。输入您的密码并按下 Enter 键。
如果您首次连接到服务器并成功验证身份,系统可能会显示一条消息询问您是否愿意继续连接。输入 yes 并按下 Enter 键。
步骤 4:验证连接
如果一切正常,您应该会看到类似以下的输出,表示您已成功连接到服务器:
Welcome to Ubuntu 24.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...
这意味着您已经成功通过 SSH 连接到您的 Ubuntu 服务器。