如今 SSH 已成为了登录远程服务器的默认方式。SSH 的全称是 “ 安全的 Shell Secure Shell ”，它功能强大、效率高，这个主流的网络协议用于在两个远程终端之间建立连接。让我们不要忘记它名称的“安全”部分，SSH 会加密所有的通信流量，以防止如劫持、窃听等攻击，同时提供不同的身份认证方式和无数个配置选项。在这份新手指南中，你会学到：SSH 的基本概念设置 SSH 服务器（在你想要远程登录的系统上）从客户端（你的电脑）通过 SSH 连接远程服务器SSH 的基本概念在学习配置过程前，让我们先了解一下 SSH 的全部基础概念。SSH 协议基于 客户端-服务器 server-client （CS）架构。“ 服务器 Server ”允许“ 客户端 Client ”通过通信通道进行连接。该信道是经过加密的，信息交换通过 SSH 公私钥进行管理。OpenSSH 是在 Linux、BSD 和 Windows 系统上提供 SSH 功能的最流行的开源工具之一。想要成功配置 SSH，你需要：在作为服务器的机器上部署 SSH 服务器组件，它由 openssh-server 包提供。在你远程访问服务器的客户端机器上部署 SSH 客户端组件，它由 openssh-client 包提供，大多数 Linux 和 BSD 发行版都已经预装好了。区分服务器和客户端是十分重要的事情。或许你不想要你的 PC 作为 SSH 服务器，除非你有充分理由希望其他人通过 SSH 连接你的系统。通常来说，你有一个专用的服务器系统。例如，一个 运行 Ubuntu 的树莓派。你可以 启用树莓派的 SSH 服务，这样你可以在你 PC 中的终端中，通过 SSH 控制并管理该设备。有了这些信息，让我们看看如何在 Ubuntu 上设置 SSH 服务器。在 Ubuntu 服务器中配置 SSH设置 SSH 并不复杂，只需要以下几步。前提一个在服务器端拥有 sudo 权限的用户可以下载所需包的互联网连接在你的网络中至少有另一个系统。可以是局域网中的另一台电脑，远程服务器或者计算机中托管的虚拟机。再次强调，在你想要通过 SSH 远程登录的系统上安装 SSH 服务。第一步：安装所需包让我们从打开终端输入一些必要命令开始。注意，在安装新的包或者软件前，要 更新你的 Ubuntu 系统，以确保运行的是最新版本的程序。sudo apt update && sudo apt upgrade 你要运行 SSH 服务器的包由 OpensSSH 的 openssh-server 组件提供：sudo apt install openssh-server 第二步：检查服务器状态当你下载并安装完包后，SSH 服务器应该已经运行了，但是为了确保万无一失我们需要检查一下：service ssh status 你还可以使用 systemctl 命令：sudo systemctl status ssh 你应该会看到这样的结果，其中 active 是高亮的。输入 q 退出该页面。如果你的结果中 SSH 服务没有运行，使用这个命令运行它：sudo systemctl enable --now ssh 第三步：允许 SSH 通过防火墙Ubuntu 带有名为 UFW（ 简单的防火墙 Uncomplicated Firewall ）的防火墙，这是管理网络规则的 iptables 的一个接口。如果启动了防火墙，它可能会阻止你连接服务器。想要配置 UFW 允许你的接入，你需要运行如下命令：sudo ufw allow ssh UFW 的运行状态可以通过运行 sudo ufw status 来检查。现在，我们的 SSH 服务器已经开始运行了，在等待来自客户端的连接。连接远程服务器你本地的 Linux 系统已经安装了 SSH 客户端。如果没有，你可以在 Ubuntu 中使用如下命令安装：sudo apt install openssh-client 要连接你的 Ubuntu 系统，你需要知道它的 IP 地址，然后使用 ssh 命令，就像这样：ssh username@address 将 用户名（username）改为你的系统上的实际用户名，并将 地址（address）改为你服务器的 IP 地址。如果你 不知道 IP 地址，可以在服务器的终端输入 ip a 查看结果。应该会看到这样的结果：可以看到我的 IP 地址是 192.168.1.111。让我们使用 username@address 格式进行连接。ssh team@192.168.1.111 这是你第一次连接到该 SSH 服务器，它会请求添加主机。输入 yes 并回车即可。SSH 会立即告诉你该主机已经被永久添加了，并要求你输入指定用户的密码，输入密码并再次按回车即可。瞧，你远程登录了你的 Ubuntu 系统！现在，你可以在远程服务器的终端里和寻常一样工作了。关闭 SSH 连接你只需要输入 exit 即可关闭连接，它会立马关闭不需要确认。在 Ubuntu 中关闭并禁止 SSH如果你想要停止 SSH 服务，需要运行该命令：sudo systemctl stop ssh 该命令会关闭 SSH 服务，直到重启它或者系统重启。想要重启它，输入：sudo systemctl start ssh 现在，如果你想要禁止 SSH 跟随系统启动，使用该命令：sudo systemctl disable ssh 该命令不会停止当前的 SSH 会话，只会在启动的时候生效。如果你想要它跟随系统启动，输入：sudo systemctl enable ssh 其他 SSH 客户端从 Linux 到 macOS，大多数 *nix 系统中都有 ssh 工具，但这并不是唯一的选项，这里有几个可以在其他操作系统中使用的客户端：PuTTY 是一个自由开源的 Windows 系统上的 SSH 客户端。它功能强大并且简单易用。如果你从 Windows 系统上连接你的 Ubuntu 服务器，PuTTY 是最好的选择。（LCTT 译注：切记从官方网站下载。）对安卓用户来说，JuiceSSH 是十分优秀的工具。如果你在旅途中需要一个移动客户端来连接你的 Ubuntu 系统，我强烈建议你试试 JuiceSSH。它已经出现了将近 10 年，并且可以免费使用。最后是 Termius，它可用于 Linux、Windows、macOS、iOS 和安卓。它有一个免费版本和几个付费选项。如果你运行大量服务器并进行共享连接的团队合作，那么 Termius 对你来说是一个不错的选择。总结在这份指导中，你可以在 Ubuntu 系统中设置 SSH 作为服务器，允许来自你电脑的远程安全的连接，便于你通过命令行开展工作。此，我推荐以下文章：Linux SSH 入门教程利用 SSH 配置文件管理多个 SSH 连接向 SSH 服务器添加公钥以进行无密码身份验证保护你的 SSH 服务器的 SSH 加固技巧远程工作快乐！via: https://itsfoss.com/set-up-ssh-ubuntu/作者：Chris Patrick Carias Stas 选题：lujun9972 译者：Donkey-Hao 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
你想在你的 Ubuntu 服务器上安装 GUI 吗？大部分情况下你是可以安装的，在本教程中我会详细介绍安装的步骤。在正式开始之前，我来告诉你为什么服务器版的 Ubuntu 不带 GUI，以及在什么情况下你可以在服务器上安装 GUI。为什么 Ubuntu 服务器没有 GUI？你对比过 Ubuntu 的桌面版和服务器版会发现，两者的主要区别是服务器版缺少 GUI（比如 桌面环境）。Ubuntu 服务器基本上就是桌面版去掉图形模块后的降级版本。这是刻意为之的。Linux 服务器需要占用系统资源来运行服务。图形化桌面环境会消耗大量的系统资源，因此服务器操作系统默认不包含桌面环境。你可以在只有 512 MB RAM 的机器上使用 Ubuntu 服务器，但是 Ubuntu 桌面需要至少 2 GB 的 RAM 才能提供正常的功能。在服务器运行桌面环境被认为是浪费资源。作为一个服务器使用者（或系统管理员），你应该通过命令行来使用和管理你的系统。为了达到这个水平，你需要掌握丰富的 Linux 命令相关的知识。你是否真正需要在你的服务器上安装 GUI？有些用户可能不太习惯在终端下使用命令行来完成工作。毕竟大部分用户是有条件通过图形界面操作计算机的。你可能会在你的服务器上安装桌面环境并使用图形界面。大部分人不会这么干，但这是可行的。但是这只有在你可以直接操作服务器时才行得通。假设你是在物理机器上运行它，比如服务器、台式机或笔记本电脑，抑或类似树莓派的设备。如果你可以直接操作宿主机系统，那么你还可以在运行在虚拟机上的服务器上安装。如果你是通过 云服务器提供商如 Linode、DigitalOcean 或 AWS 部署的服务器，那么安装 GUI 就行不通了。如果你想通过图形界面来管理你的远程服务器，你可以使用 Webmin 或 Cockpit 等工具。你可以在 Web 浏览器中通过这些工具使用和管理你的服务器。相比于成熟的桌面环境，它能大大降低资源消耗。如何在 Ubuntu 服务器上安装 GUI？当你了解了基础知识后，我们一起来看看在 Ubuntu 服务器上安装桌面环境的步骤。你需要做以下准备：已经配置好 Ubuntu 服务器，且 RAM 至少 2 GB管理员权限（你需要用 sudo 执行命令）网络连接正常（你需要下载和安装新包）我是在虚拟机上安装的 Ubuntu 服务器，并且我可以直接操作宿主机器。我使用同样的方法在树莓派上安装了 Ubuntu 服务器。注意！如果你是出于学习和调研等实验性的目的，那么你可以进行这些操作。请不要在生产环境的服务器上添加 GUI。后续删除 GUI 时可能会导致依赖问题，有些情况会破坏系统。准备系统首先，因为你将要做一些系统级的修改，因此先进行更新和升级以确保我们系统的包是最新的：sudo apt update && sudo apt upgrade 安装桌面环境更新结束后，你就可以安装桌面环境了。有两种方法：使用 apt 来安装包使用一个名为 tasksel 的 Debian 工具，这个工具可以通过一条龙处理（任务）方式来安装多个包任何一种方法都可以用完整包的方式来安装完整的桌面环境，就跟你从头安装桌面版本一样。我的意思是你可以得到跟桌面版本一样的所有的默认应用程序和工具。如果你想使用 tasksel，需要先用下面的命令安装它：sudo apt install tasksel 执行结束后，你就可以用 tasksel 来安装桌面环境（也叫 DE）了。你可能知道有 很多可用的桌面环境。你可以选择自己喜欢的一个。有些桌面环境对系统资源占用得多（像 GNOME），有些占用得少（像 Xfce、MATE 等等）。你可以自己决定使用哪个 DE。我会安装 GNOME 桌面，因为它是 Ubuntu 默认的桌面。之后我也会介绍其他桌面的安装。如果你使用的是 tasksel，执行下面这条命令：sudo tasksel install ubuntu-desktop 如果你使用 apt，执行下面这条命令：sudo apt install ubuntu-desktop 这个过程可能会持续几分钟到一个小时，执行速度取决于你的网速和硬件。我想提醒下，上面两个命令执行后都会安装完整的 GNOME 桌面环境。在本文中我两个命令都会执行，两个命令的结果是一样的。安装和配置显示管理器安装完成后，你需要一个名为 显示管理器 或“登录管理器”的组件。这个工具的功能是在管理用户对话和鉴权时启动 显示服务器 并加载桌面。GNOME 桌面默认使用 GDM3 作为显示管理器，但从资源角度考虑它有点重。你可以使用更轻量级和资源友好的管理器。这里我们使用一个平台无关的显示管理器 lightdm。使用 apt 安装它：sudo apt install lightdm 安装 lightdm 时系统会让我们选择默认的显示管理器，因为即使你可以安装多个管理器，也只能运行一个。选择列表中的 “lightdm” 并点击 “”。这应该用不了几分钟。完成后你可以用下面的命令启动显示管理器并加载 GUI：sudo service lightdm start 你可以使用下面的命令来检查当前的显示管理器：cat /etc/X11/default-display-manager 运行后得到的结果类似这样：如果一切顺利，你现在会来到欢迎界面。输入你的凭证，你的桌面就运行起来了。如果你想关闭 GUI，那么打开一个终端并输入：sudo service lightdm stop 安装其他的桌面环境（可选）前面我说过我们可以选择不同的桌面。我们一起来看看一些其他的选项：MATEMATE 是基于 GNOME2 源码的轻量级桌面，它完全开源，是一个不错的选项。用下面的命令来安装 MATE：sudo tasksel install ubuntu-mate-core 或sudo apt install ubuntu-mate-core Lubuntu / LXDE/LXQT如果你的系统资源有限或者电脑很旧，那么我推荐另一个轻量级的 Lubuntu。使用下面的命令安装它：sudo tasksel install lubuntu-core 或sudo apt install lubuntu-core Xubuntu / XfceXubuntu 是基于 Xfce 的 Ubuntu 衍生版，轻量、简单、稳定但可高度定制。如果你想使用它，执行下面的命令：sudo tasksel install xubuntu-core 或sudo apt install xubuntu-core 还有一些桌面没有列出来，像 KDE，Cinnamon 和 Budgie，不代表它们不好，它们也都是非常卓越的，你可以自己尝试安装它们。如何从 Ubuntu 服务器上删除 GUI？如果你觉得桌面环境占用了太多的计算资源，你可以把之前安装的包删除掉。请注意在某些情况下删除 GUI 可能会带来依赖问题，因此请备份好重要数据或创建一个系统快照。如何从 Ubuntu 上删除包sudo apt remove ubuntu-desktop sudo apt remove lightdm sudo apt autoremove sudo service lightdm stop 现在重启你的系统。你应该回到了正常的命令行登录。结语在大多数场景下是可以安装桌面 GUI 的。如果你不适应命令行，那么请使用类似 YunoHost 的发行版的服务器，YunoHost 基于 Debian 系统，你可以通过 GUI 来管理服务器。上面说了，如果你是从头安装系统，那么我建议你使用桌面版本以避免后续的步骤。如果你有任何问题，请在评论区留言。你会在服务器上使用 GUI 吗？参照本文后你遇到了什么问题吗？via: https://itsfoss.com/install-gui-ubuntu-server/作者：Chris Patrick Carias Stas 选题：lujun9972 译者：lxbwolf 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
管理分区是一件严肃的事情，尤其是当你不得不删除它们时。我发现自己经常这样做，特别是在使用 U 盘作为实时磁盘和 Linux 安装程序之后，因为它们创建了几个我以后不需要的分区。在本教程中，我将告诉你如何使用命令行和 GUI 工具在 Linux 中删除分区。警告!删除了分区，就会失去你的数据。无论何时，当你在操作分区时，一定要备份你的数据。一个轻微的打字错误或手滑都可能是昂贵的。不要说我们没有警告你！使用 GParted 删除磁盘分区 （GUI 方法）作为一个桌面 Linux 用户，你可能会对基于 GUI 的工具感到更舒服，也许更安全。有 几个让你在 Linux 上管理分区的工具。根据你的发行版，你的系统上已经安装了一个甚至多个这样的工具。在本教程中，我将使用 GParted。它是一个流行的开源工具，使用起来非常简单和直观。第一步是 安装 GParted，如果它还没有在你的系统中。你应该能够在你的发行版的软件中心找到它。或者，你也可以使用你的发行版的软件包管理器来安装它。在基于 Debian 和 Ubuntu 的 Linux 发行版中，你可以 使用 apt install 命令：sudo apt install gparted 安装完毕后，让我们打开 GParted。由于你正在处理磁盘分区，你需要有 root 权限。它将要求进行认证，打开后，你应该看到一个类似这样的窗口：在右上角，你可以选择磁盘，在下面选择你想删除的分区。接下来，从分区菜单中选择 “删除” 选项：这个过程是没有完整完成的，直到你重写分区表。这是一项安全措施，它让你在确认之前可以选择审查更改。要完成它，只需点击位于工具栏中的 “应用所有操作” 按钮，然后在要求确认时点击 “应用”。点击 “应用” 后，你会看到一个进度条和一个结果消息说所有的操作都成功了。你可以关闭该信息和主窗口，并认为你的分区已从磁盘中完全删除。现在你已经知道了 GUI 的方法，让我们继续使用命令行。使用 fdisk 命令删除分区（CLI 方法）几乎每个 Linux 发行版都默认带有 fdisk，我们今天就来使用这个工具。你需要知道的第一件事是，你想删除的分区被分配到哪个设备上了。为此，在终端输入以下内容：sudo fdisk --list 这将打印出我们系统中所有的驱动器和分区，以及分配的设备。你 需要有 root 权限，以便让它发挥作用。在本例中，我将使用一个包含两个分区的 USB 驱动器，如下图所示：系统中分配的设备是 /sdb，它有两个分区：sdb1 和 sdb2。现在你已经确定了哪个设备包含这些分区，你可以通过使用 fdisk 和设备的路径开始操作：sudo fdisk /dev/sdb 这将在命令模式下启动 fdisk。你可以随时按 m 来查看选项列表。接下来，输入 p，然后按回车查看分区信息，并确认你正在使用正确的设备。如果使用了错误的设备，你可以使用 q 命令退出 fdisk 并重新开始。现在输入 d 来删除一个分区，它将立即询问分区编号，这与 “Device” 列中列出的编号相对应，在这个例子中是 1 和 2（在下面的截图中可以看到），但是可以也会根据当前的分区表而有所不同。让我们通过输入 2 并按下回车来删除第二个分区。你应该看到一条信息：“Partition 2 has been deleted”，但实际上，它还没有被删除。fdisk 还需要一个步骤来重写分区表并应用这些变化。你看，这就是完全网。你需要输入 w，然后按回车来使这些改变成为永久性的。没有再要求确认。在这之后，你应该看到下面这样的反馈：现在，使用 sudo fdisk --list /dev/sdb 查看该设备的当前分区表，你可以看到第二个分区已经完全消失。你已经完成了使用终端和 fdisk 命令来删除你的分区。成功了！总结这样，这个关于如何使用终端和 GUI 工具在 Linux 中删除分区的教程就结束了。记住，要始终保持安全，在操作分区之前备份你的文件，并仔细检查你是否使用了正确的设备。删除一个分区将删除其中的所有内容，而几乎没有 恢复 的机会。via: https://itsfoss.com/delete-partition-linux/作者：Chris Patrick Carias Stas 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出