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

你或许已经想到了,既然 ssh 可以使用 scp 来进行网络复制的话,那么我能不能将 scp 的指令放置于 crontab 服务中, 让我们的系统透过 scp 直接在背景底下自行定期的进行网络复制与备份呢?抱歉,答案是:『预设状况下不允许此动作』的! 为甚么呢?因为预设状况下,你必须要透过远程登录,与 scp 互动的输入密码才行啊!但 crontab 又不会让你有终端接口输入密码, 所以该程序就会一直卡住而无法在 crontab 内执行成功喔! 那怎办?我们要放弃这个好用的网络复制工具吗?当然不是啦!我们可以透过密钥认证系统来处理的!

既然 SSH 可以使用密钥系统来比对数据,并且提供用户数据的加密功能,那么可不可能利用这个 Key 就提供用户自己进入主机,而不需要输入密码呢?呵呵!好主意!我们可以将 Client 产生的 Key 给他拷贝到 Server 当中,所以, 以后 Client 登入 Server 时,由于两者在 SSH 要联机的讯号传递中,就已经比对过 Key 了, 因此,可以立即进入数据传输接口中,而不需要再输入密码呢!在实作上的步骤可以是:

  1. 客户端建立两把钥匙:想一想,在密钥系统中,是公钥比较重要还是私钥比较重要? 当然是私钥比较重要!因此私钥才是解密的关键啊!所以啰,这两把钥匙当然得在发起联机的客户端建置才对。利用的指令为 ssh-keygen 这个命令;

  2. 客户端放置好私钥档案:将 Private Key 放在 Client 上面的家目录,亦即 $HOME/.ssh/ , 并且得要注意权限喔!

  3. 将公钥放置服务器端的正确目录与文件名去:最后,将那把 Public Key 放在任何一个你想要用来登入的服务器端的某 User 的家目录内之 .ssh/ 里面的认证档案即可完成整个程序。

说是好像很困难的样子,其实步骤真的很简单,我们依序来进行作业好了!假设前提如下,该进行的步骤则如下图:

  • Server 部分为 www.centos.vbird 这部 192.168.100.254 的主机,欲使用的账号为 dmtsai ;
  • Client 部分为 clientlinux.centos.vbird 这部 192.168.100.10 的 vbirdtsai 这个账号, 该账号要用来登入 192.168.100.254 这部主机的 dmtsai 账号。
制作不需要密码的 ssh 账号基本流程
图 11.2-10、制作不需要密码的 ssh 账号基本流程

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

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


请注意上面喔,我的身份是 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 嘛!



  • 3. 将公钥放置服务器端的正确目录与文件名:

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

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

例题:
透过上述的案例练习成功后,请在 clientlinux 的 vbirdtsai 身份中,将系统的 /etc/hosts* 档案复制给 www.centos.vbird 的 dmtsai 用户的家目录。
答:

很简单的步骤吧!这样一来,使用 ssh 相关的客户端指令就可以不需密码的手续了!无论如何,在建立密钥系统的步骤中你要记得的是:

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

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值