如今,SSH 已成为访问远程 Linux 服务器的默认方法。
SSH 代表 Secure Shell,它是一种强大、高效且流行的网络协议,用于以远程方式在两台计算机之间建立通信。让我们不要忘记其名称的安全部分;SSH 加密所有流量以防止诸如劫持和窃听等攻击,同时提供不同的身份验证方法和无数的配置选项。
在本初学者指南中,您将了解:
在您看到任何配置过程之前,最好先了解一下 SSH 的绝对基本概念。
SSH 协议基于服务器-客户端架构。“服务器”允许通过通信通道连接“客户端”。该通道是加密的,交换是通过使用公共和私人 SSH 密钥来管理的。
OpenSSH是最流行的开源工具之一,它在 Linux、BSD 和 Windows 上提供 SSH 功能。
要成功设置 SSH,您需要:
区分服务器和客户端很重要。您可能不希望您的个人计算机充当 SSH 服务器,除非您有充分的理由希望其他人通过 SSH 连接到您的系统。
通常,您有一个专用系统作为服务器。例如,运行 Ubuntu 服务器的Raspberry Pi。您可以在 Raspberry Pi 上启用 SSH,以便您可以在终端中使用 SSH 从您的主个人计算机控制和管理设备。
有了这些信息,让我们看看如何在 Ubuntu 上设置 SSH 服务器。
设置 SSH 并不复杂,只需几个步骤即可完成。
同样,SSH 服务器安装应该在您想要充当服务器并且想要通过 SSH 远程连接到的系统上完成。
让我们首先打开一个终端窗口来输入必要的命令。
请记住在安装新软件包或软件之前更新您的 Ubuntu 系统,以确保您运行的是最新版本。
sudo apt update && sudo apt upgrade
运行 SSH Server 所需的包由 OpenSSH 的 openssh-server 组件提供:
sudo apt install openssh-server
一旦包的下载和安装完成,SSH 服务应该已经在运行,但为了确保我们将检查它:
service ssh status
您也可以使用 systemd 命令:
sudo systemctl status ssh
您应该会看到类似这样的内容,其中突出显示了 Active 一词。点击q
返回命令提示符。
如果在您的情况下服务没有运行,您将必须像这样激活:
sudo systemctl enable --now ssh
Ubuntu 附带了一个名为UFW(UncomplicatedFirewall)的防火墙实用程序,它是iptables 的一个接口,它反过来管理网络规则。如果防火墙处于活动状态,它可能会阻止连接到您的 SSH 服务器。
要配置 UFW 以允许所需的访问,您需要运行以下命令:
sudo ufw allow ssh
可以检查 UFW 的状态 running sudo ufw status
。
此时我们的 SSH 服务器已经启动并运行,只是在等待来自客户端的连接。
您的本地 Linux 系统应该已经安装了 SSH 客户端。如果没有,您可以始终在 Ubuntu 上使用以下命令安装它:
sudo apt install openssh-client
要连接到您的 Ubuntu 系统,您需要知道计算机的 IP 地址并使用ssh
命令,如下所示:
ssh username@address
将用户名更改为系统中的实际用户,将地址更改为 Ubuntu 机器的 IP 地址。
如果您不知道计算机的 IP 地址,您可以ip a
在服务器的终端中输入并检查输出。你应该有这样的事情:
从这里可以看出,我的 IP 地址是192.168.1.111。让我们尝试使用username@address格式进行连接。
ssh team@192.168.1.111
第一次连接到 SSH 服务器时,它会要求添加主机的权限。输入yes
并点击Enter继续。
SSH 立即告诉您该主机已被永久添加,然后询问分配给用户名的密码。输入密码并Enter再次点击。
瞧!您将远程登录到您的 Ubuntu 系统!
现在您可以像往常一样在远程系统的终端中工作。
要关闭连接,您只需要键入exit
它就会立即关闭它,而无需确认。
如果你想停止 SSH 服务,你需要这个命令:
sudo systemctl stop ssh
这将停止服务,直到您重新启动它或直到系统重新启动。要重新启动它,请键入:
sudo systemctl start ssh
现在,如果您想在系统引导期间禁止它启动,请使用以下命令:
sudo systemctl disable ssh
这不会阻止服务在当前会话期间运行,只是在启动期间加载。如果要让它在系统引导期间再次启动,请键入:
sudo systemctl enable ssh
该工具ssh
包含在大多数 *nix 系统中,从 Linux 到 macOS,但这些并不是唯一存在的选项,以下是一些可以从其他操作系统使用的客户端: