制作不用密码可立即登入的 ssh 用户

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

建立的方法很简单,在 clientlinux.centos.vbird 这部主机上面以 vbirdtsai 的身份来建立两把钥匙即可。 不过,需要注意的是,我们有多种密码算法,如果不指定特殊的算法,则默认以 RSA 算法来处理:

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): <
==按 enterCreated 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 [email protected]

[vbirdtsai@clientlinux ~]$ ls -ld ~/.ssh; ls -l ~/.sshdrwx------. 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 ,所以当我执行 ssh-keygen 时,才会在我的家目录底下的 .ssh/ 这个目录里面产生所需要的两把 Keys ,分别是私钥 (id_rsa) 与公钥 (id_rsa.pub)。 ~/.ssh/ 目录必须要是 700 的权限才行!另外一个要特别注意的就是那个 id_rsa 的档案权限啦!他必须要是 -rw------- 且属于 vbirdtsai 自己才行!否则在未来密钥比对的过程当中,可能会被判定为危险而无法成功的以公私钥成对档案的机制来达成联机喔。 其实,建立私钥后预设的权限与文件名放置位置都是正确的,你只要检查过没问题即可。

  • 2. 将公钥档案数据上传到服务器上:

因为我们要登入 www.centos.vbird 是以 dmtsai 的身份,因此我们就得要将上个步骤建立的公钥 (id_rsa.pub) 上传到服务器上的 dmtsai 用户才行。那如何上传呢?最简单的方法当然就是使用 scp 嘛!

[vbirdtsai@clientlinux ~]$ scp ~/.ssh/id_rsa.pub [email protected]:~# 上传到 dmtsai 的家目录底下即可。
  • 3. 将公钥放置服务器端的正确目录与文件名:

还记得 sshd_config 里面谈到的 AuthorizedKeysFile 这个设定值吧?该设定值就是在指定公钥数据应该要放置的文件名啰!所以,我们必须要到服务器端的 dmtsai 这个用户身份下, 将刚刚上传的 id_rsa.pub 数据附加到 authorized_keys 这个档案内才行。作法有点像这样:

# 1. 建立 ~/.ssh 档案,注意权限需要为 700 喔![dmtsai@www ~]$ ls -ld .sshls: .ssh: 没有此一档案或目录# 由于可能是新建的用户,因此这个目录不存在。不存在才作底下建立目录的行为[dmtsai@www ~]$ mkdir .ssh; chmod 700 .ssh[dmtsai@www ~]$ ls -ld .sshdrwx------. 2 dmtsai dmtsai 4096 Jul 25 13:06 .ssh# 权限设定中,务必是 700 且属于使用者本人的账号与群组才行!# 2. 将公钥档案内的数据使用 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 才可以!不可以搞混了!

这样就搞定密钥系统啰!以后你从 clientlinux.centos.vbird 的 vbirdtsai 登入到 www.centos.vbird 的 dmtsai 用户时, 就不需要任何的密码啰!举例来说,你可以这样测试看看啰:

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

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

未来,当你还想要登入其他的主机时,只要将你的 public key (就是 id_rsa.pub 这个档案) 给他 copy 到其他主机上面去,并且新增到某账号的 ~/.ssh/authorized_keys 这个档案中!哈哈!成功!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章