SSH(SecureShell)是一种标准的网络工具,用于以安全的方式远程访问PC和其他系统。在这里,我们将告诉您如何在Ubuntu上启用SSH并将其与身份验证密钥一起使用。什么是SSH?SSH,或SecureShell,表示网络协议和使用它所需的软件。它使用专用端口号22。因此,必须在系统防火墙中允许Ubuntu或任何其他系统端口22上的SSH。使用SSH背后的想法是与网络上的另一台计算机建立安全连接。但是,远程计算机必须有一个正在运行的SSH服务器,否则我们将无法使用命令或SSH客户端从本地计算机连接到它。连接后,系统会提示我们输入远程PC用户的密码以登录并以完全加密的形式获得访问权限。连接的结果总是相同的。您最终会进入计算机上的命令行,并以其中一个用户的身份登录。另外,我们不需要PC连接,甚至可以使用智能手机。SSH还允许在没有显示器的情况下控制计算机,例如NAS盒、路由器等……这个网络工具不仅限于Ubuntu,我们可以在macOS、Windows、RasberryPi等甚至智能手机上使用它……Ubuntu20.04安装并启用OpenSSH服务器在大多数情况下,Ubuntu默认使用SSH作为OpenSSH服务器,并且已经安装了客户端。但如果您不这样做,请按照下面给出的步骤操作。本教程适用于所有活动的Ubuntu系统,例如Ubuntu18.04/19.04/21.04,运行系统更新命令-linuxmi@linuxmi:~/www.linuxmi.com$sudoapt-getupdate在Ubuntu20.04LTS上安装OpenSSH服务器-linuxmi@linuxmi:~/www.linuxmi.com$sudoapt-getinstallopenssh-serveropenssh-client要在Ubuntu上启用和启动SSH服务器服务:linuxmi@linuxmi:~/www.linuxmi.com$sudosystemctlenable--nowssh要检查状态运行-linuxmi@linuxmi:~/www.linuxmi.com$systemctlstatusssh如下图所示:安装完成后,我们可以使用本地电脑(可以是虚拟机)通过SSH远程连接到我们的Ubuntu20.04LTS系统进行测试。当然,您必须确保您的本地系统可以通过网络访问您要连接的远程系统。如何通过SSH连接到远程Ubuntu系统让我们看看如何使用命令提示符或本地系统的终端通过SSH连接到远程Ubuntu系统。这里我们假设远程Ubuntu系统的IP地址为192.168.150.211,用户名为linuxmi;现在要通过ssh建立连接,请按照以下步骤操作:在Linux中打开终端或在Windows中打开命令提示符。使用命令语法“sshusername@ip-address”。例如-sshlinuxmi@192.168.150.211。由于在安装SSH服务器之前我们还没有连接到我们的Ubuntu服务器,所以计算机之间当然不会“认识”对方。因此,当我们第一次连接到服务器时,它会询问您是否真的要连接到计算机以及您是否信任显示的签名。只需输入“是”进行确认。之后,您的进程将向远程用户询问密码,该密码是在连接到服务器时在命令中定义的。输入密码,您将获得远程服务器的命令行,以远程发出命令。要再次退出,请键入“exit”。如下图:keyauthenticationforincreasedsecurity那么,除了输入远程Ubuntu服务器的密码,我们可以使用更安全的方式,那就是Key。我们不需要输入常见的密码,以防止我们的密码被泄露或复制,以防我们使用一些未知的计算机连接到远程服务器。使用key的原理其实很简单。我们只需要根据公钥和私钥的概念在客户端机器上创建一个密钥对。所以,基本上,我们将创建两个密钥,一个是用于加密明文以将其转换为密文的公钥,另一个是接收方用来解密密文以读取消息的私钥。简而言之,私钥就像一把必须保密的门钥匙,因为您可以用它来打开远程计算机的门锁。公钥基本上是您在服务器门上构建的钥匙孔。所以这个概念类似于我们家真正的门,每个人都可以看到门的钥匙孔,但是打开它的钥匙只有房子的主人。要为SSH生成公钥和私钥,请在本地系统上打开命令行-终端或提示符。输入将生成密钥的SSH密钥生成器命令ssh-keygen,然后按Enter。(可选)然后您可以输入密码,以便在建立连接时增加额外的障碍。否则,如果您不希望系统要求额外的密码查询,只需按两次回车键。最终,在您的用户目录下的隐藏目录“.ssh”中创建了两个文件:“id_rsa”和“id_rsa.pub”。文件名中的“rsa”代表使用的密码术,但您不必担心。文件扩展名“pub”代表“public”,所以它是一个公钥。没有任何扩展名的文件就是您的私钥。将公钥复制到服务器现在,要使用密钥对进行连接,请在此处将您生成的公钥复制到Ubuntu服务器。我们不需要手动访问服务器,我们也可以使用SSH来复制密钥。使用命令将SSH公钥复制到服务器:ssh-copy-id-i~/.ssh/id_rsa.pubusername@ip-addressonLinux注意:使用远程的实际值更改用户名和IP地址服务器。在Windows上scpC:\Users\windwos-username\.ssh\id_rsa.pubusername@ip-address:~/.ssh/authorized_keys注意:将windows-username替换为您为其保存公钥的当前用户,以及username@ip-地址需要远程Linux用户和IP地址。在macOS上:brewinstallssh-copy-idssh-copy-id-i~/.ssh/id_rsa.pubusername@ip-address“-i”表示复制身份,即指定的公钥。复制当然是通过SSH完成的,所以我们在这里需要远程机器的密码一次。复制密钥后,您可以使用您的私钥连接到远程查看系统,而无需输入任何类型的密码。但是,请确保您的私钥位于只有您可以访问的安全位置。要使用私有,命令语法如下:ssh-i"path-to-private-key"username@ip-addresspath-to-private-key:替换为您保存生成的私钥的路径。而用户名和IP地址用于远程服务器系统详细信息。这样我们就可以使用身份验证密钥来获得无密码连接,请记住一件事,只有在您拥有私钥文件的情况下才有可能。您可以在官方网站上了解更多关于SSH的信息。
