1.客户端建立两把钥匙:

[vbirdtsai@clientlinux ~]$ ssh-keygen [-t rsa|dsa] <==可选 rsa 或 dsa

[vbirdtsai@clientlinux ~]$ ssh-keygen <==用预设的方法建立密钥

Generating public/private rsa key pair.

Enter file in which to save the key (/home/vbirdtsai/.ssh/id_rsa): <==按 enter

Created directory '/home/vbirdtsai/.ssh'. <==此目录若不存在则会主动建立

Enter passphrase (empty for no passphrase): <==按 Enter 不给密码

Enter same passphrase again: <==再输入一次 Enter 吧!

Your identification has been saved in /home/vbirdtsai/.ssh/id_rsa. <==私钥档

Your public key has been saved in /home/vbirdtsai/.ssh/id_rsa.pub. <==公钥档

The key fingerprint is:

0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 vbirdtsai@clientlinux.centos.vbird

[vbirdtsai@clientlinux ~]$ ls -ld ~/.ssh; ls -l ~/.ssh

drwx------. 2 vbirdtsai vbirdtsai 4096 2011-07-25 12:58 /home/vbirdtsai/.ssh

-rw-------. 1 vbirdtsai vbirdtsai 1675 2011-07-25 12:58 id_rsa <==私钥档

-rw-r--r--. 1 vbirdtsai vbirdtsai 416 2011-07-25 12:58 id_rsa.pub <==公钥档
将公钥档案数据上传到服务器上:

[vbirdtsai@clientlinux ~]$ scp ~/.ssh/id_rsa.pub dmtsai@192.168.100.254:~
将公钥放置服务器端的正确目录与文件名:

  1. 建立 ~/.ssh 档案,注意权限需要为 700 喔!
    [dmtsai@www ~]$ ls -ld .ssh

ls: .ssh: 没有此一档案或目录

由于可能是新建的用户,因此这个目录不存在。不存在才作底下建立目录的行为

[dmtsai@www ~]$ mkdir .ssh; chmod 700 .ssh

[dmtsai@www ~]$ ls -ld .ssh

drwx------. 2 dmtsai dmtsai 4096 Jul 25 13:06 .ssh

权限设定中,务必是 700 且属于使用者本人的账号与群组才行!

  1. 将公钥档案内的数据使用 cat 转存到 authorized_keys 内
    [dmtsai@www ~]$ ls -l *pub
    -rw-r--r--. 1 dmtsai dmtsai 416 Jul 25 13:05 id_rsa.pub <==确实有存在

[dmtsai@www ~]$ cat id_rsa.pub >> .ssh/authorized_keys

[dmtsai@www ~]$ chmod 644 .ssh/authorized_keys

[dmtsai@www ~]$ ls -l .ssh

-rw-r--r--. 1 dmtsai dmtsai 416 Jul 25 13:07 authorized_keys

这个档案的权限设定中,就得要是 644 才可以!不可以搞混了!

Client 必须制作出 Public & Private 这两把 keys,且 Private 需放到 ~/.ssh/ 内;

Server 必须要有 Public Key ,且放置到用户家目录下的 ~/.ssh/authorized_keys,同时目录的权限 (.ssh/) 必须是 700 而档案权限则必须为 644 ,同时档案的拥有者与群组都必须与该账号吻合才行。