如何配置新的 Ubuntu 安装以接受 ssh 连接?

Dar*_*zer 234 ssh

我刚刚安装了 Ubuntu。我如何设置它以允许我 ssh 进入它?

现在我得到“ssh:连接到主机 xxxx 端口 22:操作超时”。

Oli*_*Oli 310

sudo apt update
sudo apt install ssh
sudo ufw allow 22      # if you have ufw running, but it doesn't hurt to run.
Run Code Online (Sandbox Code Playgroud)

这是最低限度。它允许在已知端口上无限次尝试密码失败。直接 root-login 被禁用(你仍然可以su并且sudo一旦登录)。如果您的用户名和密码是可猜测的并且 Internet 可以看到服务器,那么最终有人闯入。

我再怎么强调都不为过:您需要强化默认设置。您本质上是为了被黑客入侵的可能性而牺牲了便利,但我已经在我的博客上提出了一些建议。至少,我建议:

  • 基于密钥的登录。禁用密码登录。
  • 将它从端口 22 移开。在 20000-60000 范围内使用高得离谱的东西。
  • 使用fail2ban禁止人谁找到它,并尝试蛮力它。

这将花费你不到 10 分钟的时间,他们会把你从 1/10000 的可能性带入一个如此小的概率,世界上没有足够的纸来写下它的分数。假设您小心使用您的密钥,它有自己的密码短语,并且您不会在网络上大肆宣传您的凭据。

在从 Internet 访问此 SSH 服务器方面,您可能会面临本地网络障碍。如果计算机位于 NAT 路由器(例如大多数家庭网络)之后,而没有来自 Internet 的直接传入访问,则您可能需要查看端口转发。显然,如果您不需要网络外部访问,跳过这一步将有助于网络安全。

  • 根据您的实例,您可能不需要 sudo ufw allow 22。例如,我有一个简单的 VirtualBox Ubuntu-Server 实例,在 Windows 主机上具有桥接网络(用于简单的开发需求) - 无需打开端口 22 (已经打开),不需要可能会关闭 22 的强化,不需要使用不同的端口。 (9认同)
  • @Matteo 它附带了一些常见服务(如 SSH)的默认值。在这种情况下,除非您对日志的保存位置进行了重大更改,否则只需安装它就足够了。 (2认同)

fos*_*dom 24

安装可从软件中心获得的 openssh-server 包将提供服务器元素,以允许客户端(例如另一个 ubuntu 桌面)实现与“服务器”(例如您的 VM)的安全连接。

ubuntu 社区有一个关于 SSHOpenSSH-Server以及如何以安全方式配置它的优秀指南。