SSH 密钥的作用是使你的机器和FedoraProject的CVS服务器之间能够相互认证。SSH的密钥管理主要包括两个方面生成公钥/私钥对以及公钥的分发。下面将对这两个密钥管理工作分别进行介绍。

(1)生成用户自己的密钥对

生成并分发用户自己的密钥有两个好处:(1)可以防止“中间人”这种攻击方式。(2)可以只用一个口令就登录到所有用户想登录的服务器上。

用下面的命令可以生成密钥:

ssh-keygen t 类型

在同一台主机上同时有SSH1和SSH2的密钥是没有问题的,因为密钥是保存为不同的文件的。生成公钥/私钥对命令为:

    [root@MyRedHat ~]# ssh-keygen -t rsa

然后根据提示进行操作。

SSH密钥管理的两个方面

生成公钥/私钥的保存路径默认情况下为:/home/[user]/.ssh/id_dsa(私人密钥)和/home/[user]/.ssh/id_dsa.pub(公用密钥)。现在用户有一对密钥了:公用密钥要分发到所有用户想用SSH登录的远程主机上去;私人密钥要好好地保管,以防止别人知道。用“ls -l ~/.ssh/identity”或“ls -l ~/.ssh/id_dsa”命令所显示的文件的访问权限必须是“-rw-------”。

如果用户怀疑自己的密钥已经被别人知道了,应该马上生成一对新的密钥。当然,这样做之后还需要重新分发一次公用密钥,才能正常使用。

(2)分发公用密钥

在每一个用户需要用SSH连接的远程服务器上,都要在自己的主目录下创建一个“.ssh”的子目录,把用户的公用密钥“identity.pub”拷贝到这个目录下并把它重命名为“authorized_keys”。然后执行修改权限命令:

    chmod 644 .ssh/authorized_keys

这一步是必不可少的。因为,如果除了用户之外别人对“authorized_keys”文件也有写的权限,那么如果遭到非法的破坏,SSH就不能正常工作。

如果用户想从不同的计算机登录到远程主机,“authorized_keys”文件也可以有多个公用密钥。在这种情况下,必须在新的计算机上重新生成一对密钥,然后把生成的“identify.pub”文件拷贝并粘贴到远程主机的“authorized_keys”文件里。当然在新的计算机上用户必须有一个账号,而且密钥是用口令保护的。有一点很重要,就是当用户取消了这个账号之后,别忘了把这一对密钥删掉。

小知识之公钥:

公钥是与私钥算法一起使用的密钥对的非秘密一半。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。公钥和私钥是通过一种算法得到的一个密钥对(即一个公钥和一个私钥)其中的一个向外界公开,称为公钥;另一个自己保留,称为私钥。