SSH 密钥管理工具

常用开源工具的省时快捷方式。
187 位读者喜欢这篇文章。
gadgets

Opensource.com

我经常使用 SSH。我每天都会登录到多个服务器和 Pis (它们可能和我处在同一个房间,也可能通过互联网连接)。我需要访问许多设备,并且访问的要求各不相同,因此除了使用各种 SSH/SCP 命令选项之外,我还必须维护一个包含所有连接详细信息的配置文件。

随着时间的推移,我想出了一些省时技巧和工具,你可能会觉得有用。

SSH 密钥

SSH 密钥是一种无需密码即可验证 SSH 连接的方法,可以加快你的访问速度,或者作为一种安全措施(如果你关闭密码访问并确保只允许授权密钥)。要创建 SSH 密钥,请运行以下命令

$ ssh-keygen

这将在 ~/.ssh/ 中创建一个密钥对(一个公钥和一个私钥)。将私钥 (id_rsa) 保存在 PC 上,切勿共享。你可以与他人共享公钥 (id_rsa.pub) 或将其放置在其他服务器上。

ssh-copy-id

如果我在家或工作中操作 Pi,我倾向于将 SSH 设置保留为默认设置,因为我不关心内部受信任网络上的安全性,并且我通常将我的 SSH 密钥复制到 Pi,以避免每次都必须使用密码进行身份验证。为此,我使用 ssh-copy-id 命令将其复制到 Pi。这会自动将你的密钥添加到 Pi

$ ssh-copy-id pi@192.168.1.20

在生产服务器上,我倾向于关闭密码身份验证,只允许授权的 SSH 密钥。

ssh-import-id

另一个类似的工具是 ssh-import-id。你可以使用它通过从 GitHub 导入密钥来授予你(或其他人)访问计算机或服务器的权限。例如,我已经将我的各种 SSH 密钥注册到我的 GitHub 帐户,因此我可以无需密码即可推送到 GitHub。这些公钥是可用的,因此 ssh-import-id 可以使用它们从我的任何计算机授权我

$ ssh-import-id gh:bennuttall

我也可以使用它来授予其他人访问服务器的权限,而无需向他们索要密钥

$ ssh-import-id gh:waveform80

storm

我还使用一个名为 Storm 的工具,它可以帮助你将 SSH 连接添加到 SSH 配置中,这样你就不必记住所有连接。 你可以使用 pip 安装它

$ sudo pip3 install stormssh

然后,你可以使用以下命令将 SSH 连接添加到你的配置中

$ storm add pi3 pi@192.168.1.20

然后你可以直接使用 ssh pi3 来获取访问权限。 类似地,scp file.txt pi3: 或者 sshfs pi pi3:

你还可以使用更多 SSH 选项,例如端口号

$ storm add pi3 pi@192.168.1.20:2000

你可以使用 Storm 的 文档轻松地列出、搜索和编辑已保存的连接。 Storm 实际上所做的只是管理 ~/.ssh/config 中的 ssh 配置文件中的条目。一旦你了解了这些条目的存储方式,你可能会选择手动编辑它们。config 中的示例连接如下所示

Host pi3
   user pi
   hostname 192.168.1.20
   port 22

结论

SSH 是系统管理的重要工具,从 Raspberry Pi 到最大的云基础设施都是如此。熟悉密钥管理将永远有用。你还有其他 SSH 技巧可以补充吗?我很乐意让你在评论中分享它们。

接下来阅读什么
User profile image.
Ben 是 BBC News Labs 的软件工程师,曾任 Raspberry Pi 的社区经理。他喜欢 Linux、Python 和所有开源的东西!在 Twitter 上关注 Ben @ben_nuttall。

3 条评论

还有我几年前发现的 sshch。 它非常好,为你提供了一个可以从中选择连接的 cli gui。 它也可以存储密码,但它是以明文形式存储的。 https://github.com/zlaxy/sshch

嗨,
非常好的文章
非常感谢

本文是关于 SSH 密钥生成,与密钥管理无关。 密钥管理和私钥安全在企业中要复杂得多。

任何人都可以使用 Windows、OS X 和所有 Linux 版本中提供的 OS 工具生成 SSH 密钥,如果所有其他方法都失败了,可以使用 Open SSL。

本文是关于加密的,而不是关于密码密钥管理。

Creative Commons License本作品采用知识共享署名 - 相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.