一、单用户密钥登陆
这里先做个单用户使用密钥登陆sshd服务器的过程。以test用户为例。
创建密钥: [test@redflag ~]$ ssh-keygen -t rsa 然后拷贝公钥到服务器上: [test@redflag ~]$ scp .ssh/id_rsa.pub dennis@192.168.0.18:~/.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 dennis@192.168.0.18 Last login: Mon Nov 10 12:34:20 2008 from 192.168.0.14 测试成功。
二、多用户登陆(客户端多用户在同组同目录)
客户端
服务端:
用户: dennis 在服务器端的用户
客户端:
用户1:test、主目录:/home/test、宿组:test 用户2:user、主目录:/home/test、宿组:test
[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 user用户使用ssh的-i参数指定私钥文件来登陆: [user@ redflag ~]$ ssh -i .ssh/common_id_rsa dennis@192.168.0.18 Last login: Mon Nov 10 13:35:29 2008 from 192.168.0.14 [dennis@ redflag ~]$ 登陆成功。
三、多用户登陆(客户端多用户)
user用户的信息如下:
-rw-r----- 1 test test 1675 11-10 13:43 common_id_rsa
服务器端: 用户 dennis
客户端: 用户 test user[user@ redflag ~]$
1.首先在客户端,用对应用户生成密钥
[user@ redflag ~]$ scp .ssh/id_rsa.pub dennis@192.168.0.3:~/.ssh (服务器上的.ssh目录需先生成) [test@ redflag ~]$ ssh-keygen -t rsa [test@ redflag ~]$ scp .ssh/id_rsa.pub dennis@192.168.0.3:~ (先拷到家目录下)
2.在服务器端,对公钥进行处理
[user@ redflag ~]$ ssh-keygen -t rsa
[dennis@ redflag ssh]$ mv id_rsa.pub authorized_keys [dennis@ redflag ssh]$ cat `/id_rsa.pub >> ./authorized_keys
[dennis@ redflag ~]$ cd .ssh
在实施过程中有时按照上述步骤实施时,可是还是会出现要求用户输入密码的情况。这时请检查在服务器端存放公钥目录的权限设置问题。