如何在 Ubuntu 和 Debian 上启用 SSH [包含配置步骤]如何在 Ubuntu 和 Debian 上启用 SSH [包含配置步骤]如何在 Ubuntu 和 Debian 上启用 SSH [包含配置步骤]如何在 Ubuntu 和 Debian 上启用 SSH [包含配置步骤]
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 和 Debian 上启用 SSH [包含配置步骤]

以下是如何在基于 Ubuntu 和 Debian 的 Linux 发行版上启用 SSH。还了解如何在 Linux 服务器上正确配置 SSH 守护程序以允许远程登录。

如果您想在 Ubuntu 桌面上启用 SSH,请使用以下命令:

sudo apt install openssh-client

如果您想在 Ubuntu 服务器上启用 SSH,请使用以下命令:

sudo apt install openssh-server

阅读本文的其余部分以获取更多详细信息。

每个系统管理员和开发人员都经历过需要远程登录系统以实现更快的管理和调试目的。

在 IT 环境中,如今几乎所有系统管理任务都是通过远程登录执行的。

不仅仅是系统管理员,即使是普通用户有时也需要远程登录服务器。

那么如何远程连接Linux系统呢?有多种工具可用于远程登录,但对于 Linux,SSH 是最受欢迎的选择。

SSH 是 secure shell 的缩写,是一种允许从一台计算机安全地远程登录到另一台计算机的协议。

现在的问题是如何在 Ubuntu 或 Debian 或您正在使用的任何其他 Linux 发行版上启用 SSH?

请记住,SSH 只是一个协议,这个协议可以通过许多工具来实现,例如 lsh、Dropbear 等,但 SSH 使用最广泛的工具是开源软件 OpenSSH。

在本教程中,您将了解如何安装 OpenSSH 并配置它以在基于 Ubuntu 和 Debian 的 Linux 发行版上启用 SSH。上述步骤适用于 Ubuntu/Debian 的桌面版和服务器版。

我还建议阅读本文以熟悉 SSH 的基础知识。

使用 OpenSSH 在 Ubuntu 和 Debian 上启用 SSH

正如我之前提到的,OpenSSH 是用于进行 SSH 登录的软件。它侦听端口并对传入用户进行身份验证并为远程用户创建新的 shell。

为了使 SSH 工作,需要在用户需要登录的远程系统上运行 ssh 服务器。您还需要在本地系统中有一个 ssh 客户端,用户可以从该客户端登录到远程系统。

OpenSSH 提供这两种功能。有用于最终用户的 openssh-client 和用于远程服务器的 openssh-server。

在安装 OpenSSH 之前,您应该检查 SSH 是否已安装并在您的系统上运行。

检查 SSH 是否已启用并正在运行

您的系统上很可能已经启用了 SSH。要进行验证,请在远程服务器或最终用户系统上运行以下命令:

ps -aux | grep ssh

如果启用了 SSH,您应该在桌面上看到有关 SSH 代理的信息:

ps -aux | grep ssh

abhishek  1736  0.0  0.0  11304    36 ?        Ss   08:18   0:00 /usr/bin/ssh-agent /usr/bin/im-launch env GNOME_SHELL_SESSION_MODE=ubuntu gnome-session --session=ubuntu

abhishek 10462  0.0  0.0  21536  1044 pts/0    S+   10:15   0:00 grep --color=auto ssh

在服务器上,您应该看到有关正在运行的 SSH 守护进程的信息:

ps -aux | grep ssh

root       920  0.0  0.2  72296  6028 ?        Ss    2018   0:17 /usr/sbin/sshd -D

root     22708  0.0  0.3 108172  7364 ?        Ss   05:13   0:00 sshd: root@pts/0

root     22873  0.0  0.0  14856  1068 pts/0    S+   05:14   0:00 grep --color=auto ssh

如果您没有看到与上述类似的输出,则表明您的系统上没有运行 SSH。是时候安装 OpenSSH 了。

在 Ubuntu 和 Debian 上安装 OpenSSH

在继续安装 OpenSSH 之前,请先了解一下 openssh-client 和 openssh-server。

openssh-client:如果您想使用 SSH 连接到远程 Linux 系统,这是您需要的软件包。这是最终用户/桌面用户所需要的。

openssh-server:如果您想允许通过 SSH 远程登录您的系统,则需要此软件包。这就是您的 Linux 服务器上所需要的。

请注意,安装 openssh-server 还可以让您通过 SSH 远程登录其他系统。换句话说,openssh-server 由 openssh-client 组成。但是,如果您只是使用 Linux 桌面的最终用户,则(大多数情况下)不需要安装 openssh-server 并允许远程登录您的系统。

现在您知道了两者之间的区别,是时候看看如何安装它们了。

请注意,要在 Ubuntu 或 Debian 上安装 OpenSSH,您需要拥有 sudo/root 权限。如果您没有此类权限,请联系您的系统管理员。您还可以阅读这篇有关创建 sudo 用户的文章。

为桌面或最终用户安装 OpenSSH

如果您只想通过 SSH 连接到其他远程系统,则应使用以下命令安装 openssh-client 软件包:

sudo apt update
sudo apt install openssh-client

一旦您在系统上安装了 ssh,您就可以使用它了。请参阅这篇详细文章了解如何使用 SSH。

为服务器安装 OpenSSH

如果您正在设置 Ubuntu/Debian 服务器,应安装 openssh-server 软件包,以便其他远程用户可以连接到您的系统。

sudo apt update
sudo apt install openssh-server

一旦安装了 openssh-server,就该学习如何根据您的需要调整和配置它了。

控制 SSH 守护进程 sshd(用于服务器)

您将安装名为 sshd 的 SSH 守护程序,并默认在重新启动时自动启动。 systemctl 是控制 SSH 守护进程的几种方法之一。要了解有关 systemctl 的更多信息,请参阅本文。

启动sshd服务

只需发出以下命令即可启动该服务:

sudo systemctl start sshd

停止sshd服务

可以通过类似的方式停止该服务:

sudo systemctl stop sshd

重启sshd服务

如果您希望停止和启动 sshd 服务(通常在更改 sshd 服务的配置时需要),您可以简单地使用以下命令:

sudo systemctl restart sshd

每次启动时在 Ubuntu 上自动启用 SSH

有些服务需要在重新启动时启动,以避免手动交互并且如果使用非常频繁。对于服务器中的Apache、mongod、mysqld、sshd等服务来说是非常重要的。

如果您想为 sshd 启用此类自动启动,请使用:

sudo systemctl enable sshd

禁用重启时 SSH 自动启动

如果您不希望 sshd 在重新启动时自动启动,请使用

sudo systemctl disable sshd

每当您更改 ssh 服务(例如更改端口)时,上面提到的四个提示都是必要的。您可以使用上述命令来管理任何服务(例如 mysqld、mongod、apache),并将服务名称 sshd 替换为目标服务。

提示:即使 SSH 连接断开,您也可以使用 nohup 命令继续运行命令。

配置 SSH(用于服务器)

截至目前,我们的 ssh 服务将侦听端口 22,并准备在存储密钥后对任何用户(也包括 root)进行身份验证。

如果您想更改任何配置,例如侦听连接的端口,您可以编辑文件“/etc/ssh/sshd_config ” 通过添加、删除、注释或取消注释这些行,然后重新启动 sshd 服务。

有很多选项可供配置。我创建了一个最有可能需要的配置列表。

1.更改默认SSH端口

通常,sshd 服务侦听 TCP 端口 22。如果需要,您可以通过在 /etc/ssh/ssh_config 中添加/编辑以下行来将 SSH 端口更改为 5678。

Port 5678

重新启动服务即可立即看到更改。

2. 禁用root通过SSH登录

出于安全原因,允许 root 用户通过 ssh 进行身份验证并不是一个好主意。 sudo 用户可以远程登录,但不能登录 root,因为 root 位于安全食物链的顶端。

可以通过添加(如果尚未存在)以下行并重新启动服务来禁用根登录。

PermitRootLogin no

如果该行已经存在,请确保它没有被注释掉。

3. 允许基于 SSH 密钥的身份验证

您可能希望允许基于 ssh 密钥的身份验证,以便最终用户不必始终输入密码。只需使用 ssh user@ip 就足以登录远程系统。

为此,您应该配置 SSH 以允许公钥身份验证:

PubkeyAuthentication yes 

如果该行已经存在,请确保它没有被注释掉。

现在,如果您想允许特定系统通过公钥登录,您需要在文件 .ssh/authorized_keys 中添加最终用户的公钥。

您可以在 ssh-keygen 的帮助下制作 ssh 密钥(公钥和私钥)。要了解有关 key-gen 的更多信息,请参阅这个很棒的资源。

您可以通过您喜欢的任何方式将最终用户的公钥传输到远程服务器。如果您愿意,可以使用 scp 命令或者只是通过 FTP 获取它。这真的取决于你。

以上三个是最需要的,但如果您想进一步更改,请参阅sshd_config的联机帮助页。

结论

我认为这是一本足够好的阅读材料,可以帮助您了解如何在 Ubuntu/Debian 上启用 SSH 以及如何在服务器上配置 SSH 以进行远程登录。

在相关文章中,您可以参考这篇文章,详细介绍了由于在系统之间复制公钥而出现的 SSH 错误。

如果您觉得这篇文章有用,请分享给您的朋友。如果您有任何建议或意见,或者您认为我遗漏了什么,请随时在下面发表评论。

©2015-2025 艾丽卡 support@alaica.com