zoukankan      html  css  js  c++  java
  • SSH证书登录方式(无password验证登录)

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

            SSH分为有password登录和证书登录。考虑到安全性因素,一般都是採用证书登录。即:每次登录无需输入password。

    假设是password登录,非常easy遭受到外来的攻击。

    一、证书登录的过程:

           1.client生成证书的私钥和公钥。

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

            一般为了安全,訪问有黑客拷贝client的私钥。client在生成私钥时。会设置一个password,以后每次登录sshserver时,client都要输入password解开私钥(假设工作中,你使用了一个没有password的私钥,有一天server被黑了,你是跳到黄河都洗不清)。

            2.server加入信用公钥。

            把client生成的公钥,上传到sshserver,加入到指定的文件里。这样,就完毕ssh证书登录的配置了。

            如果client想通过私钥要登录其它sshserver,同理。能够把公钥上传到其它sshserver。

           

            实际应用举例:

            工生成好私钥和公钥(千万要记得设置私钥password)。然后把公钥发给运维人员,运维人员会登记你的公钥。为你开通一台或者多台server的权限。然后员工就能够通过一个私钥,登录他有权限的server做系统维护等工作。所以。员工是有责任保护他的私钥的。假设被别人恶意拷贝。你又没有设置私钥password。那么,server就全完了,员工也能够放长假了。

    二、证书登陆实例

      环境:A通过ssh方式登陆B。即:A为本地机,B为远程登陆server

               1.A机配置

              ①生成公钥和私钥

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

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

           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           (由于没有设置私钥password, 所以不须要password, 登录成功)

    三、其它应用场景:

           SecureCRT密钥key远连接程ssh证书登录Linux

           国内大部分人用的系统是windows,而windows下有非常多sshclient图形工作,最流行,功能最强大的就是SecureCRT了,所以我会单独针对SecureCRT简单讲下实现ssh证书登录Linux的要点,过程例如以下:

          1:在SecureCRT创建私钥和公钥:

            主菜单->工具->创建公钥->选择RSA->填写私钥的password->密钥长度填为1024->点击完毕,生成两个文件,默认名为identity和identity.pub

           2.把私钥和公钥转换为OpenSSH格式:

             主菜单->工具->转换私钥到OpenSSH格式->选择刚生成私钥文件identity->输入私钥的password->生成两个文件,指定为id_rsa, id_rsa.pub 

          3.把公钥id_rsa.pub上传到sshserver,依照之前配置server端的证书,再配置一次。

          另外,假设你之前用windows的 SecureCRT的证书登录linux的,有一天你换成了linux,并希望通过原来的私钥登录公司的server,那么能够把id_rsa拷贝倒~/.ssh/文件夹下。

          备注:

          ssh对证书的文件和文件夹权限比較敏感,要么依据出错提示设置好文件和文件夹权限。要么是把StrictModes选项设置为no。

          hadoop部署的无passwordssh登录

            hadoop要求master要无password跳转到每一个slave,那么master就是上文中的sshclient了。过程例如以下:

            1.在hadoop master上,生成公钥私钥。这个场景下。私钥不能设置password。

            2.把公钥上传到每一个slave上指定的文件夹。这样就完毕了ssh的无password跳转了。

    四、总结:

           ssh证书登录,在实际工作才是最经常使用的登录方式,本人结合了真正工作的场景普及了ssh证书登录的知识,并依据流行的hadoop部署和windows下最经常使用的SecureCRT实例解说了证书登录。

  • 相关阅读:
    普通的patch 和使用git 打patch
    c语言中的原子操作
    读写锁的简单说明
    source Insight 的常用设置
    git 一些常用的场景
    gdb 脚本 简单理解
    linux 中的errno 和 strerror(errno)
    C++中内存对齐原理详解
    如何安装windbg调试助手
    Windows中如何读写INI文件
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5064276.html
Copyright © 2011-2022 走看看