在 Ubuntu 20.04 Linux 上启用 SSH 的正确姿势

系统 Linux
SSH (Secure Shell) 是一种标准的网络工具,用于以安全的方式远程访问 PC 和其他系统。在这里,我们将告诉您如何在 Ubuntu 上启用 SSH 并使用身份验证密钥使用它。

 SSH (Secure Shell) 是一种标准的网络工具,用于以安全的方式远程访问 PC 和其他系统。在这里,我们将告诉您如何在 Ubuntu 上启用 SSH 并使用身份验证密钥使用它。

什么是SSH?

SSH 或 Secure Shell,既表示网络协议,也表示 使用所需 的 软件。它适用于22的专用端口号。因此,在系统防火墙中必须允许在 Ubuntu 或任何其他系统端口 22 上使用 SSH。

使用 SSH 背后的想法是与网络中的另一台计算机建立 安全连接。但是,远程计算机必须有一个正在运行的 SSH 服务器,否则我们将无法从本地计算机使用命令或 SSH 客户端连接它。

一旦我们建立了连接,就会提示输入远程 PC 用户的密码以登录并以完全加密的形式访问。连接的结果始终相同。您最终会进入计算机上的命令行,并以其中一位用户的身份登录。

此外,我们不需要PC来连接,甚至可以使用智能手机。SSH 还允许在没有显示器的情况下控制计算机,例如 NAS 盒、路由器等……

这个网络工具不仅限于 Ubuntu,我们可以在 macOS、Windows、Rasberry Pi 和其他甚至智能手机上使用它……

在 Ubuntu 20.04 上安装并启用 Open SSH 服务器

大多数情况下,Ubuntu 默认使用 SSH 作为 OpenSSH 服务器,并且客户端已经安装在其中。但是,如果您没有,请按照下面给出的步骤操作。本教程适用于所有活跃的 Ubuntu 系统,例如 Ubuntu 18.04/19.04/21.04,

  •  运行系统更新命令-
  1. linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt-get update 
  •  在 Ubuntu 20.04 LTS 上安装 OpenSSH 服务器-         
  1. linuxmi@linuxmi:~/www.linuxmi.com$ sudo apt-get install openssh-server openssh-client 
  •  在 Ubuntu 上启用并启动 SSH服务器服务:
  1. linuxmi@linuxmi:~/www.linuxmi.com$ sudo systemctl enable --now ssh 
  •  要检查状态运行 -
  1. linuxmi@linuxmi:~/www.linuxmi.com$ systemctl status ssh 

如下图:

安装完成后,我们可以使用本地计算机(可以是虚拟机)通过 SSH 远程连接我们的 Ubuntu 20.04 LTS 系统进行测试。当然,您必须确保您的本地系统能够访问您要通过网络连接的远程系统。

如何通过SSH连接远程Ubuntu系统

让我们看看如何使用本地系统的命令提示符或终端通过 SSH 连接远程 Ubuntu 系统。 

这里我们假设远程 Ubuntu 系统有一个 IP地址为 192.168.150.211并且用户名是linuxmi;现在通过 ssh 建立连接,请按照以下步骤操作:

  1.  在 Linux 中打开终端或在 Windows 系统中打开 命令提示符。
  2.  使用命令语法“ ssh username@ip-address”。例如 - ssh linuxmi@192.168.150.211。
  3.  由于我们在安装 SSH 服务器之前没有连接过我们的 Ubuntu 服务器,因此,当然,计算机并不“认识”彼此。
  4.  因此,当我们第一次连接服务器时,它会询问您是否真的要连接到计算机以及您是否信任显示的签名。只需输入“yes”进行确认。
  5.  之后,您的过程将询问远程用户的密码,该密码在连接服务器时在命令中定义。输入密码,您将获得远程服务器的命令行以远程发出命令。要再次离开,请输入“ exit  ”。

如下图:

密钥认证以提高安全性

好吧,我们可以使用更安全的方式而不是输入远程 Ubuntu 服务器的密码,那就是Key。我们不需要输入普通密码,从而防止我们的密码被泄露或复制,以防我们使用一些未知的计算机连接远程服务器。

使用key的原理其实很简单。我们只需要根据公钥和私钥的概念在客户端机器上创建一个密钥对。所以,基本上,我们将创建两个密钥一个是公钥用来加密明文将其转换成密文,而私钥用于由接收器解密密文阅读的消息。

简而言之,私钥就像一把必须保密的门钥匙,因为您可以用它来解锁远程计算机的门。公钥基本上是您在服务器门上构建的钥匙孔。因此,这个概念类似于我们房子里的真实门,每个人都可以看到门的钥匙孔,但打开的钥匙只有房子的主人。

为 SSH 生成公钥和私钥

  •  在本地系统上打开命令行 -终端或提示。
  •  输入将生成密钥的SSH 密钥生成器命令ssh-keygen
  •  按Enter键。
  •  (可选),然后你就可以输入 一个 在密码以便建立连接时添加额外的障碍。否则,如果您不希望系统要求额外的密码查询,只需按两次Enter键即可。
  •  最终, 在您的用户目录下的隐藏目录“.ssh”中创建了两个文件:  “id_rsa” 和 “id_rsa.pub”。文件名中的“rsa”代表所使用的密码学,但您不必担心。文件扩展名“ pub ”代表“公共”,因此它是公钥。而没有任何扩展名的文件是您的私钥。

将公钥复制到服务器

现在,要使用密钥对建立连接,请将您生成的公钥复制到此处的 Ubuntu 服务器。

我们不需要手动访问服务器,我们也可以使用 SSH 来复制密钥。

使用以下命令将 SSH 公钥复制到服务器:

在 Linux 上 

 

  1. ssh-copy-id -i ~/.ssh/id_rsa.pub username@ip-address 

注意:使用远程服务器的实际值更改用户名和 IP 地址。

在 Windows 上

 

  1. scp C:\Users\windwos-username\.ssh\id_rsa.pub username@ip-address:~/.ssh/authorized_keys 

注意:将windows-username替换为您保存公钥的当前用户,而username@ip-address需要远程 Linux 用户和 IP 地址。

在 macOS 上:

 

  1. brew install ssh-copy-id  
  2. ssh-copy-id -i ~/.ssh/id_rsa.pub username@ip-address 

 

“  -i ”表示要复制身份,即指定的公钥。复制当然是通过 SSH 完成的,因此我们需要密码远程机器一次,这里。

复制密钥后,您可以使用您的私钥连接远程查看系统,而无需输入任何类型的密码。但是,请确保您的私钥位于只有您可以访问的安全位置。

要使用私有,这里是命令语法:

 

  1. ssh -i "path-to-private-key" username@ip-address 

path-to-private-key:替换为您保存生成的私钥的路径。

而用户名和IP 地址用于远程服务器系统详细信息。

通过这种方式,我们可以使用身份验证密钥来获得无密码连接,请记住一件事,只有在您随身携带私钥文件时才有可能。可以在官网了解更多关于SSH 的信息。

 

 

责任编辑:庞桂玉 来源: Linux公社
相关推荐

2021-09-13 12:45:08

Ubuntu 20.0PythonLinux

2018-01-11 15:31:39

命令Linux关机

2009-08-05 09:53:42

2019-10-30 17:06:50

AWS物联网IoT

2020-05-15 12:50:04

Ubuntu 20.0LinuxDeb文件

2023-11-22 10:48:15

Arch Linux蓝牙

2021-10-02 10:15:19

UbuntuLinuxAnyDesk

2017-04-19 22:00:40

UbuntuLinux Mint桌面共享

2022-05-29 17:37:39

LinuxUbuntuPHP

2017-02-23 15:37:44

OptionObject容器

2016-05-09 10:41:03

算法分析开发

2019-04-28 10:00:11

UbuntuLinuxMySQL

2020-04-13 15:05:10

Ubuntu深色模式Ubuntu 20.0

2020-07-14 20:25:46

UbuntuLinux桌面应用

2022-06-10 14:22:05

BlenderLinux开源

2021-12-15 11:46:46

HTTP2Nginx

2017-07-10 13:09:45

前端Flexbox

2017-03-16 11:39:33

Openstack源码姿势

2023-01-30 07:41:43

2020-03-06 16:50:08

Java错误日志
点赞
收藏

51CTO技术栈公众号