如何备份ssh密钥?


34

我打算在系统中重新安装ubuntu 11.10。在此之前,我已经在这台机器上设置了基于密钥的ssh身份验证。是否可以备份那些ssh密钥,以便我可以在新安装中使用它。否则我必须再次设置基于密钥的SSH身份验证?如果我可以备份,我需要复制哪些文件?有人可以详细解释吗。提前致谢。


1
您是在谈论服务器还是客户端计算机?
enzotib

我在谈论服务器机。
karthick87

Answers:


39

仅响应SSH ...是的,您可以保留密钥。

不过,我想不出要讨论的任何话题。直截了当:如果您的用户名是karthick,则密钥位于此处的隐藏目录中:

/home/karthick/.ssh

要么

~/.ssh

id_rsa.pub文件包含用于认证的公共密钥。但也有其他文件,以保留- 所有这些,真的,诸如known_hosts 例如。在最重要的就是id_rsa(注意缺少的.pub),因为这是你的私钥。备份每个用户。例如,如果您为设置了SSH root,也请获取/root/.ssh。因此,您拥有的帐户数量之多,依此类推。


1
这就是为什么在/ home目录的不同分区中始终是一个好习惯的原因;万一您想进行全新的安装,也不想松开您自己的配置中的任何东西。
maniat1k 2011年

5
这个答案是误导的。SSH使用私钥/公钥对。私钥在中id_rsa。这是备份的最重要的关键。
1

1
您可以从私钥(id_rsa)中恢复公钥(id_rsa.pub),反之亦然。该.pub文件包含可放入服务器的一行,与服务器~/.ssh/authorized_keys连接时根本不使用。
Lekensteyn 2011年

1
@ maniat1k我通常不同意您应该/home在OS上使用单独的分区,因为发行版或dist版本之间的差异之一是配置文件格式可以更改,因此事情可能以意想不到的方式中断。如果要跨OS保留配置,我认为您应该为特定程序明确进行配置。
quodlibetor

1
@Lekensteyn实际上,.pub连接到服务器时有时会使用该文件。如果密钥已加密,.pub则使用该文件将公用密钥发送到服务器。如果服务器拒绝公用密钥,则无需提示用户输入密码。仅当服务器接受公共密钥时,秘密密钥才会被解密。而且,如果您在中有很多密钥,ssh-agent并且想指示ssh客户端使用哪个密钥,可以通过要求它使用特定.pub文件进行身份验证来实现。
kasperd

33

您可能要备份的加密密钥。

  • ~/.gnupg/*
  • ~/.pki/nssdb/*
  • ~/.gnome2/keyrings/*
  • ~/.ssh/*
  • /usr/local/apache2/conf/ssl.crt/server.crt
  • /usr/local/apache2/conf/ssl.key/server.key
  • /etc/ssh/*
  • /etc/ssl/private/*
  • /etc/cups/ssl/*

3
您错过了他问过的那个问题(~/.ssh),但仍然列出了一个不错的列表:)
Cesium

您也错过了/etc/ssh
1

很棒的清单!谷歌搜索这样一个列表比它应该是难。感谢您提供它。
基督教徒

8

每个用户都有一个Directoy〜/ .ssh,通常包含以下文件:

1) id_dsa             private key of this user (different filename for rsa keys)
1) id_dsa.pub         public key of this user
2) authorized_keys    public key of other users (or same user on other machines)
   config             personal configuration
   known_hosts        host keys of other machines

此外,在/ etc / ssh /中,您将找到:

3) ssh_host_dsa_key
3) ssh_host_dsa_key.pub
3) ssh_host_rsa_key
3) ssh_host_rsa_key.pub

这些是主机密钥,它们是标识此计算机的密钥。

您当然想备份所有私钥和公钥。我们将有问题的机器称为“ home”,并将用户“ user @ home”。同一个人的帐户为user @ remote,并且双向使用基于密钥的登录。如果您丢失任何密钥文件,将会发生什么:

  1. 您失去了user @ home的身份。ssh user@remote从家里将不再与基于密钥的身份验证一起使用。
  2. user @ remote失去使用他的密钥登录到家的权利。ssh user@home将不再通过基于密钥的身份验证从远程工作。
  3. 您失去了主机的身份。尝试时,user @ remote将显示警告,提示主机密钥已更改ssh user@home。根据配置,这将阻止他登录。

要回答未问到的问题... :)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.