如何在Cockpit上管理SSH密钥以进行远程SSH密钥认证

740 阅读6分钟

如何在Cockpit上管理SSH密钥以进行远程SSH密钥认证

Jack Wallen向你展示了在Cockpit基于Web的管理GUI中管理多个SSH密钥是多么容易。

SSH rays volume light concept 3d illustration

图片:profit_image/Adobe Stock

Cockpit是一个出色的基于Web的GUI,用于管理你的Linux服务器。大多数基于RHEL的服务器都安装了Cockpit,可以轻松完成管理服务、存储、网络、容器、更新、用户账户、日志、SELinux等工作。

在Cockpit中发现的另一个不太明显的功能是管理SSH密钥的能力,用于远程SSH密钥认证。想象一下。你在你的AlmaLinux服务器上登录Cockpit,然后你想用SSH登录到另一台有内置终端功能的服务器上。你会怎么做呢?

如果你想使用SSH密钥认证,因为它更安全,你要确保远程服务器上有Cockpit服务器的公钥。你可以通过命令行来完成这些,但是有一个更简单的方法--尤其是当你使用多个SSH密钥的时候--直接内置在Cockpit中。

让我告诉你这是如何工作的。

看:你需要知道的40多个开源和Linux术语(TechRepublic Premium)。

你将需要什么

为了实现这一目标,你需要一台运行着Cockpit的服务器,以及至少另一台接受SSH登录的服务器。我将向你展示如何从一个非标准的目录中添加SSH密钥,并为不同的目的添加多个密钥。你还需要一个在Cockpit主机上有sudo权限的用户。

如何启用Cockpit服务

如果你还没有启用Cockpit,这里有一个方法。登录托管Cockpit的服务器并发出命令。

sudo systemctl enable --now cockpit.socket

必读的开发者报道

一旦Cockpit被启用,你可以通过将浏览器指向https://SERVER:9090 (其中SERVER是托管服务器),并以具有sudo权限的用户身份登录到基于Web的界面。

如何添加一个SSH密钥

Cockpit不能做的事情之一是生成你的服务器的SSH密钥。如果你还没有这样做,现在就来解决这个问题。我将向你展示如何不仅从默认的~/.ssh目录中添加SSH密钥,而且创建一个SSH密钥并将其保存到一个非标准的目录中,以便于管理你的密钥。

通过SSH登录到你的Cockpit主机。用命令创建一个新的目录。

sudo mkdir /data

接下来,将该目录的所有权改为你的用户。

sudo chown -R $USER.$USER /data

你可以随心所欲地命名为data ;我只是默认选择了这个名字。

用命令生成一个新的SSH密钥。

ssh-keygen

你可能还想给新钥匙添加一个注释,这样你就可以跟踪它是哪个钥匙了。例如,你想生成一个SSH密钥,用于你的Ubuntu服务器。为此,你可以发出这样的命令。

ssh-keygen -C "Ubuntu Servers"

当被要求输入保存密钥的文件时,输入/data/key1_rsa (你可以把密钥的名字改成你需要的任何名字),然后点击键盘上的回车键。

然后,你将被要求输入并验证该钥匙的密码。一旦你处理好了这些,你应该在/data文件夹里有一对匹配的钥匙(key1_rsa和key1_rsa.pub)。根据你的需要创建尽可能多的钥匙。

如何用Cockpit管理SSH密钥

现在你的钥匙已经创建,让我们用Cockpit来管理它们。记住,这些钥匙需要被复制到你的远程服务器上进行SSH钥匙认证。尽管Cockpit没有一个内置的机制来自动完成这个过程,但它至少给了你一个精心设计的GUI来添加和使用你需要的密钥。

以管理员身份登录Cockpit,然后点击右上角的会话下拉菜单。在该下拉菜单中,点击SSH密钥(图A)。

图A

图片:Jack Wallen/TechRepublic.Cockpit中的会话下拉菜单。

在出现的窗口中(图B),点击添加密钥。

图B

图片。Jack Wallen/TechRepublic.Cockpit的SSH密钥管理器非常基本,但很有效。

点击位置下拉,从列表中选择/data(图C)。

图C

图片。Jack Wallen/TechRepublic。选择存放我们新的SSH密钥的目录。

如果你第二次点击位置下拉,存放在该目录中的钥匙将出现(图D)。

图D

图片。Jack Wallen/TechRepublic。我们的钥匙已经准备好被添加。

选择你刚刚创建的钥匙,然后点击添加。你会被提示输入密钥口令(图E)。

图E

图片。Jack Wallen/TechRepublic。键入你的密钥的口令,这样它就可以被添加到Cockpit密钥管理器中。

键入密钥的口令,然后点击解锁,密钥就会被添加。

如何在Cockpit中使用你的SSH密钥

现在,我们要在Cockpit中复制我们新添加的SSH密钥,并将其添加到远程服务器上。在Cockpit SSH钥匙管理器中,展开你想使用的钥匙的条目,然后点击公钥标签。在该选项卡中(图F),点击剪贴板图标来复制该密钥。

图F

图片:Jack Wallen/TechRepublic.在Cockpit中复制用于SSH密钥认证的公钥。

现在,点击左侧边栏中的终端条目,SSH进入你想复制密钥的服务器。一旦你登录了,发出命令。

nano .ssh/authorized_keys

打开该文件,粘贴复制的密钥,保存并关闭该文件。从SSH会话中退出,然后再次登录。

有了SSH密钥,你不应该被要求提供远程机器的密码。因为我们把SSH密钥保存在一个非标准的目录中,所以你的SSH命令看起来会是这样的。

ssh -i /data/key1_rsa 192.168.1.30

这就是用Cockpit管理你的SSH密钥的全部内容。记住,你可以在系统中添加你需要的钥匙,每一个都可以用于不同的目的,在Cockpit的帮助下,你访问和使用这些钥匙应该不会有任何问题。

还可以看到