一、单用户密钥登陆

  这里先做个单用户使用密钥登陆sshd服务器的过程。以test用户为例。

 

   客户端

   创建密钥:

   [test@redflag ~]$ ssh-keygen -t rsa

   然后拷贝公钥到服务器上:

   [test@redflag ~]$ scp .ssh/id_rsa.pub [email protected]:~/.ssh/authorized_keys

   服务端

   在服务端上创建的authorized_keys默认权限是644,这不能满足安全要求,需要改为600

   [dennis@redflag ~]$ ll ~/.ssh/authorized_keys

-rw-r--r-- 1 dennis dennis 395 11-10 13:32 /home/dennis/.ssh/authorized_keys

[dennis@redflag ~]$ chmod 600 ~/.ssh/authorized_keys

[dennis@redflag ~]$ ll ~/.ssh/authorized_keys

    -rw------- 1 dennis dennis 395 11-10 13:32 /home/dennis/.ssh/authorized_keys

   测试

   使用test用户,使用密钥进行登陆:

[test@redflag ~]$ ssh [email protected]

Last login: Mon Nov 10 12:34:20 2008 from 192.168.0.14

   测试成功。

 二、多用户登陆(客户端多用户在同组同目录)

  服务端:

    用户: dennis     在服务器端的用户

  客户端:

   用户1test、主目录:/home/test、宿组:test  用户2user、主目录:/home/test、宿组:test

  

      user用户的信息如下:

   [user@redflag ~]$ id

   uid=514(user) gid=513(test) groups=513(test)

   由于私钥权限是600的,user用户无法使用它进行登陆:

   [user@redflag ~]$  ll ~/.ssh/id_rsa

    -rw------- 1 test test 1675 11-10 12:40 /home/test/.ssh/id_rsa

   使用test用户把私钥文件拷贝成另一个文件:

   [test@redflag ~]$ cd .ssh/

   [test@ redflag .ssh]$ cp id_rsa common_id_rsa

   [test@ redflag .ssh]$ chmod 640 common_id_rsa

   [test@ redflag .ssh]$ ll common_id_rsa
    -rw-r----- 1 test test 1675 11-10 13:43 common_id_rsa

   user用户使用ssh-i参数指定私钥文件来登陆:

   [user@ redflag ~]$ ssh -i .ssh/common_id_rsa [email protected]

Last login: Mon Nov 10 13:35:29 2008 from 192.168.0.14

   [dennis@ redflag ~]$

  登陆成功。

  三、多用户登陆(客户端多用户)

 服务器端:  用户 dennis

 客户端:    用户 test  user[user@ redflag ~]$

  1.首先在客户端,用对应用户生成密钥

      [user@ redflag ~]$ ssh-keygen -t rsa

   [user@ redflag ~]$ scp .ssh/id_rsa.pub [email protected]:~/.ssh   (服务器上的.ssh目录需先生成)

   [test@ redflag ~]$ ssh-keygen -t rsa 

   [test@ redflag ~]$ scp .ssh/id_rsa.pub [email protected]:~         (先拷到家目录下)

  2.在服务器端,对公钥进行处理

      [dennis@ redflag ~]$ cd .ssh

   [dennis@ redflag ssh]$ mv id_rsa.pub authorized_keys

   [dennis@ redflag ssh]$ cat `/id_rsa.pub >> ./authorized_keys

   在实施过程中有时按照上述步骤实施时,可是还是会出现要求用户输入密码的情况。这时请检查在服务器端存放公钥目录的权限设置问题。