如何在Cockpit上管理SSH密钥以进行远程SSH密钥认证
Jack Wallen向你展示了在Cockpit基于Web的管理GUI中管理多个SSH密钥是多么容易。

图片: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的帮助下,你访问和使用这些钥匙应该不会有任何问题。
还可以看到
- 每个人都需要知道的Windows、Linux和Mac命令(免费PDF) (TechRepublic)
- 淘宝网上的 "淘宝客 "是什么 ?
- Linux 101:技术专家需要知道的东西 (TechRepublic Premium)
- Linux、安卓和更多的开源技术报道 (TechRepublic on Flipboard)