保持SSH密钥的安全


我想告诉您如何安全地将SSH密钥存储在本地计算机上,而不必担心某些应用程序可能会窃取或解密它们。


本文对于那些在2018年的偏执狂之后仍未找到理想解决方案并继续将密钥存储在$HOME/.ssh人很有用。


为了解决此问题,我建议使用KeePassXC ,它是最好的密码管理器之一,它使用强大的加密算法,并且还具有内置的SSH代理。


这样就可以将所有密钥安全地直接存储在密码数据库中,并在打开时自动将其添加到系统中。 关闭数据库后,也将无法使用SSH密钥。


首先,我们将在登录时添加SSH代理的自动启动,为此,在您喜欢的编辑器中打开~/.bashrc并添加到最后:


 SSH_ENV="$HOME/.ssh/environment" function start_agent { echo "Initialising new SSH agent..." /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}" echo succeeded chmod 600 "${SSH_ENV}" . "${SSH_ENV}" > /dev/null } # Source SSH settings, if applicable if [ -f "${SSH_ENV}" ]; then . "${SSH_ENV}" > /dev/null #ps ${SSH_AGENT_PID} doesn't work under cywgin ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { start_agent; } else start_agent; fi 

然后,我们需要在KeePassXC中启用支持:


工具 -> 选项 -> SSH代理 -> 启用S​​SH代理



这样就完成了设置,现在尝试向KeePassXC添加新的SSH密钥:


单击带有键的图标,然后填写数据:



如果密钥受密码保护,请提供相同的密码


在“ 高级”选项卡上,使用我们的id_rsa加载附件:



在“ SSH代理”选项卡上,请注意:


  • 在打开/解锁数据库时向代理添加密钥
  • 关闭/锁定数据库时从代理中删除密钥

接下来,在附件中选择我们的密钥( id_rsa


然后单击添加到代理按钮:



现在,当您启动KeePassXC时,密钥将自动添加到SSH代理中,因此您将无法再将其存储在磁盘上!

Source: https://habr.com/ru/post/zh-CN435270/


All Articles