常常在工作中需要在各个Linux机间进行跳转,每次密码的输入成了麻烦,而且也不安全。在实际使用中,在windows下常使用secureCRT工具或teraterm工具进行SSH登录,以及实现hadoop集群部署要求的无密码跳转问题。

        SSH分为有密码登录和证书登录。考虑到安全性因素,一般都是采用证书登录,即:每次登录无需输入密码。如果是密码登录,很容易遭受到外来的攻击。
一、证书登录的过程:

       1.客户端生成证书的私钥和公钥。

         私钥放在客户端,公钥上传到服务端(远程登陆端)。

        一般为了安全,访问有黑客拷贝客户端的私钥,客户端在生成私钥时,会设置一个密码,以后每次登录ssh服务器时,客户端都要输入密码解开私钥(如果工作中,你使用了一个没有密码的私钥,有一天服务器被黑了,你是跳到黄河都洗不清)。

        2.服务器添加信用公钥。

        把客户端生成的公钥,上传到ssh服务器,添加到指定的文件中,这样,就完成ssh证书登录的配置了。

        假设客户端想通过私钥要登录其他ssh服务器,同理,可以把公钥上传到其他ssh服务器

       

        实际应用举例:

        工生成好私钥和公钥(千万要记得设置私钥密码),然后把公钥发给运维人员,运维人员会登记你的公钥,为你开通一台或者多台服务器的权限,然后员工就可以通过一个私钥,登录他有权限的服务器做系统维护等工作,所以,员工是有责任保护他的私钥的,如果被别人恶意拷贝,你又没有设置私钥密码,那么,服务器就全完了,员工也可以放长假了。
二、证书登陆实例:
  环境:A通过ssh方式登陆B,即:A为本地机,B为远程登陆server

           1.A机配置

          ①生成公钥和私钥

             # ssh-keygen -t rsa           (连续三次回车,即在本地生成了公钥和私钥,不设置密码)

         ②将公钥拷到B端
         # scp  root@B的iP:root/.ssh/id_rsa.pub  ./.ssh/id_rsa.pub  (需要输入密码)

       2.B机配置

         ①创建authorized_keys2文件

         # touch /root/.ssh/authorized_keys2      (如果已经存在这个文件, 跳过这条)

        ②追加公钥到authorized_keys2中

        # cat /root/.ssh/id_rsa.pub   >> /root/.ssh/authorized_keys2 (将id_rsa.pub的内容追加到 authorized_keys2 中)

       3.SSH证书登陆验证

       # ssh root@B的iP           (因为没有设置私钥密码, 所以不需要密码, 登录成功)

更多请见:http://www.mark-to-win.com/tutorial/50486.html

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐