您的位置:新葡亰496net > 电脑系统 > 新葡亰496net:秘钥登入,CentOS多台服务器共用密

新葡亰496net:秘钥登入,CentOS多台服务器共用密

发布时间:2019-07-28 23:11编辑:电脑系统浏览(189)

    ssh-keygen介绍

    采用数字签名RSA或者DSA实现两个linux机器之间使用ssh不需要用户名和密码,rsassh

    为了让两个linux机器之间使用ssh不需要用户名和密码。所以采用了数字签名RSA或者DSA来完成这个操作。

    模型分析

    假设 A (192.168.20.59)为客户机器,B(192.168.20.60)为目标机;

    要达到的目的:

    A机器ssh登录B机器无需输入密码;

    加密方式选 rsa|dsa均可以,默认dsa

    ssh-keygen -t rsa #使用rsa加密

    二、具体操作流程

    单向登陆的操作过程(能满足上边的目的):

    1、登录A机器

    2、ssh-keygen -t[rsa|dsa],将会生成密钥文件和私钥文件id_rsa,id_rsa.pub或id_dsa,id_dsa.pub

    新葡亰496net:秘钥登入,CentOS多台服务器共用密钥ssh自动登入。3、将 .pub 文件复制到B机器的 .ssh 目录,并 cat id_dsa.pub >> ~/.ssh/authorized_keys

    4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;(直接运行#ssh 192.168.20.60)

    双向登陆的操作过程:

    1、ssh-keygen做密码验证可以使在向对方机器上ssh ,scp不用使用密码.具体方法如下:

    2、两个节点都执行操作:#ssh-keygen -t rsa

    然后全部回车,采用默认值.

    3、这样生成了一对密钥,存放在用户目录的~/.ssh下。

    将公钥考到对方机器的用户目录下,并将其复制到~/.ssh/authorized_keys中(操作命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys)。

    4、设置文件和目录权限:

    设置authorized_keys权限

    $ chmod 600 authorized_keys

    设置.ssh目录权限

    $ chmod 700 -R .ssh

    5、要保证.ssh和authorized_keys都只有用户自己有写权限。否则验证无效。(今天就是遇到这个问题,找了好久问题所在),其实仔细想想,这样做是为了不会出现系统漏洞。

    我从20.60去访问20.59的时候会提示如下错误:

    Theauthenticityofhost'192.168.20.59(192.168.20.59)'can'tbeestablished.RSAkeyfingerprintis6a:37:c0:e1:09:a4:29:8d:68:d0:ca:21:20:94:be:18.Areyousureyouwanttocontinueconnecting(yes/no)yesWarning:Permanentlyadded'192.168.20.59'(RSA)[email protected]'spassword:Permissiondenied,[email protected]'spassword:Permissiondenied,[email protected]'spassword:Permissiondenied(publickey,gssapi-with-mic,password).

    三、总结注意事项

    1、文件和目录的权限千万别设置成chmod 777.这个权限太大了,不安全,数字签名也不支持。我开始图省事就这么干了

    2、生成的rsa/dsa签名的公钥是给对方机器使用的。这个公钥内容还要拷贝到authorized_keys

    3、linux之间的访问直接 ssh 机器ip

    4、某个机器生成自己的RSA或者DSA的数字签名,将公钥给目标机器,然后目标机器接收后设定相关权限(公钥和authorized_keys权限),这个目标机就能被生成数字签名的机器无密码访问了

    ssh-keygen设置ssh无密码登录

    ssh-keygen - 生成、管理和转换认证密钥,包括 RSA 和 DSA 两种密钥

    密钥类型可以用 -t 选项指定。如果没有指定则默认生成用于SSH-2的RSA密钥

    配置:

    1、在本地机器中的~/.ssh/目录下执行下命令

    ssh-keygen -t dsa

    将生成两个文件,id_dsa和id_dsa.pub

    2、将id_dsa.pub拷贝到远程机器,并且将id_dsa.pub的内容添加到~/.ssh/authorized_keys中

    cat id_dsa.pub >>authorized_keys

    注意:目录.ssh和文件authorized_keys的权限必须是600

    完成以上操作之后,用户从本地机器到远程机器就不需要用密码了

    几个文件的作用说明,摘自

    ~/.ssh/identity

    该用户默认的RSA1身份认证私钥(SSH-1)。此文件的权限应当至少限制为"600"。

    生成密钥的时候可以指定采用密语来加密该私钥(3DES)。

    ssh将在登录的时候读取这个文件。

    ~/.ssh/identity.pub

    该用户默认的RSA1身份认证公钥(SSH-1)。此文件无需保密。

    此文件的内容应该添加到所有RSA1目标主机的~/.ssh/authorized_keys文件中。

    ~/.ssh/id_dsa

    该用户默认的DSA身份认证私钥(SSH-2)。此文件的权限应当至少限制为"600"。

    生成密钥的时候可以指定采用密语来加密该私钥(3DES)。

    ssh将在登录的时候读取这个文件。

    ~/.ssh/id_dsa.pub

    该用户默认的DSA身份认证公钥(SSH-2)。此文件无需保密。

    此文件的内容应该添加到所有DSA目标主机的~/.ssh/authorized_keys文件中。

    ~/.ssh/id_rsa

    该用户默认的RSA身份认证私钥(SSH-2)。此文件的权限应当至少限制为"600"。

    生成密钥的时候可以指定采用密语来加密该私钥(3DES)。

    ssh将在登录的时候读取这个文件。

    ~/.ssh/id_rsa.pub

    该用户默认的RSA身份认证公钥(SSH-2)。此文件无需保密。

    此文件的内容应该添加到所有RSA目标主机的~/.ssh/authorized_keys文件中。

    /etc/ssh/moduli

    包含用于DH-GEX的Diffie-Hellmangroups

    新葡亰496net:秘钥登入,CentOS多台服务器共用密钥ssh自动登入。BG2BLT01 is on, BG2BLT02 is power off. They’re too noisy L

    When and how to move them to data center

    Please update SSH key in .33 server for git repo access.

    ssh-keygen -t dsa

    scp ~/.ssh/id_dsa.pub [YOUR_USER_NAME]@10.38.116.33:authorized_keys

    ssh [YOUR_USER_NAME]@ 10.38.116.33

    skip below 3 steps if you already have .ssh and .ssh/authorized_keys

    mkdir -m 700 .ssh

    touch .ssh/authorized_keys

    chmod 600 .ssh/authorized_keys

    cat authorized_keys >> .ssh/authorized_keys;exit

    vi ~/.ssh/config

    add lines and save quit

    host 10.38.116.33

    user [YOUR_USER_NAME]

    为了让两个linux机器之间使用ssh不需要用户名和密码。所以...

        为了让两个linux机器之间使用ssh不需要用户名和密码。所以采用了数字签名RSA或者DSA来完成这个操作。


    非对称加密简介:

    最近在研究自动登陆的linux服务器的东西。本篇为关于ssh的秘钥自动登陆。

     

    模型分析

    对称加密算法在加密和解密时使用的是同一个秘钥;
    而非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是
    公开密钥(public key,简称公钥)
    私有密钥(private key,简称私钥)

    update:2014.3.9 4:21 PM,昨晚写完这篇之后,发现IBM的网上有篇关于ssh认证的完整描述。伤心了。。

    维基百科上关于ssh-keygen的介绍如下:

    假设 A (192.168.20.59)为客户机器,B(192.168.20.60)为目标机;

    常用的DES、三 重DES、AES等都属于对称加密;
            RSA, EI Gamal, ECC, Knapsack, etc都属于非对称加密;

     

    要达到的目的:

           与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。
    公开密钥与私有密钥是一对。
           如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;
           如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
           因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

    猜想:linux的秘钥产生与服务器无关,只和加密的方式(采用rsa或dsa)还有passphrase(密码短语,在生成秘钥的时候输入的)有关。

        ssh-keygen is a standard component of the Secure Shell (SSH) protocol suite found on Unix and Unix-like computer systems used to establish secure shell sessions between remote computers over insecure networks, through the use of various cryptographic techniques. The ssh-keygen utility is used to generate, manage, and convert authentication keys.

    A机器ssh登录B机器无需输入密码;

     

    如果是这样的话,同一对秘钥可以使用在多台服务器上,因为对于服务器和客户端来说,他们在通信的时候只需验证秘钥和公钥是否匹配。

     

    加密方式选 rsa|dsa均可以,默认dsa

    简单理解:
                    加密             公钥加密——私钥解密                
    数字证书**      私钥签名——公钥验证**

    即存在一个global的公钥存放在ssh服务器上,而多台客户端则使用的同一秘钥登陆ssh服务器上。

        ssh-keygen is able to generate a key using one of three different digital signature algorithms.

    ssh-keygen -t rsa #使用rsa加密

    新葡亰496net 1

    测试环境:本机windows使用secureCRT客户端,两台redhat 6.3的虚拟机(linuxA和B,192.168.1.2/3)。虚机与主机使用桥接网络,处于同一局域网。

    With the help of the ssh-keygen tool, a user can create passphrase keys for any of these key types (to provide for unattended operation, the passphrase can be left empty, at increased risk).

    二、具体操作流程

     

    测试过程:

    These keys differ from keys used by the related tool GNU Privacy Guard.

    单向登陆的操作过程(能满足上边的目的):

     

    注:公钥一般是pub结尾,但是服务器验证的文件是authorized_key,所以要把pub文件的内容转入authorized_key。pub文件本身没用。

     

    1、登录A机器


    使用秘钥登录linux:

    1、使用CRT生成秘钥对,将公钥上传到linuxA,成功登陆后,cpoyA机中的公钥至B机中,实现CRT自动登陆B机,验证公钥为通用。

      Oracle Solaris 11.2 Information Library (简体中文)手册中关于ssh-keygen的介绍如下: 

    2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub

    一、在windows上使用 SSH Secure Shell Client   用密钥认证登录linux服务器

    首先使用CRT生成秘钥:

     

    3、将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys

          1.在SSH Secure Shell Client  上选择  Edit->settings->Keys

    1.使用SecureCRT创建私钥和公钥(Set Passphrase 可以设置为空密码,比较方面验证)SecureCRT: Quick Connect -> Authentiation -> Public Key -> Properties -> Create Identity File -> DSA/RSA -> Set Passphrase -> Done这个时候在指定目录会生成两个文件,例如,私钥my_rsa和公钥my_rsa.pub2.linux服务器上建立.ssh目录,一般情况下,已经有这个目录(更改权限很重要,认证的时候权限不是700不给通过)# mkdir /root/.ssh# chmod 700 /root/.ssh3.将公钥 my_rsa.pub 传到linux服务器,将SSH2兼容格式的公钥转换成为Openssh兼容格式(一般情况是ssh2,不排除ssh1)# ssh-keygen -i -f Identity.pub >> /root/.ssh/authorized_keys2# chmod 600 /root/.ssh/authorized_keys24.在SecureCRT里面设置登录模式为PublicKey,并选择刚刚创建的my_rsa文件作为私钥5.重启Linux服务器上SSH服务器(测试貌似不用重启服务也能生效)

    ssh-keygen主要用于为ssh(远程登录程序)生成、管理和转换验证密钥。ssh-keygen 可以创建供 SSH 协议版本 1 使用的 RSA 密钥,以及供 SSH 协议版本 2 使用的 RSA 或 DSA 密钥。生成的密钥类型使用–t选项指定。ssh-keygen 还可以生成指纹或从指定为 PKCS#11 URI 的 X.509v3 证书转换公钥。

    4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;(直接运行 #ssh 192.168.20.60 )

         2. 点击“Generate New” 可选择 rsa dsa两种加密方式
         3. 输入生成Key的文件名和注释,打算使用空密码登录则Passphrase中不输入密码
         4. 完成

    #service sshd restart 或者 /etc/rc.d/init.d/sshd restart

     

    双向登陆的操作过程:

         5. 登录SSH Server,进入/root目录    
                再到Edit->Settings->key下,选择”upload”刚才的秘钥
               这样就把公钥上传到服务器了 z

    此阶段,测试成功,A和B机使用的同一对authorized_keys2,CRT都能实现自动登陆。

    通常,希望将 SSH 与 RSA 或 DSA 验证结合使用的每个用户应运行一次此实用程序,以便在 $HOME/.ssh/identity、$HOME/.ssh/id_dsa 或 $HOME/.ssh/id_rsa 中创建验证密钥。系统管理员还可以使用此实用程序生成主机密钥。

    1、ssh-keygen做密码验证可以使在向对方机器上ssh ,scp不用使用密码.具体方法如下:

         6. 因为SSH Server是Linux,而SSH Secure Shell Client客户端上Windows,所以密钥需要进行格式转换
             并把公钥追加到authorized_keys中
           cd $HOME/.ssh/
    **
           ssh-keygen -i -f xxx.pub >> **authorized_keys

    2、在B机中生成秘钥对,将公钥复制到A中,实现B机自动登陆A,然后将B的秘钥传过去,把A的authorized_keys2内容写入B的authorized_keys2文件中,实现A自动登陆B。

     

    2、两个节点都执行操作:#ssh-keygen -t rsa

         7. 修改sshd_config
         sudo vi /etc/ssh/sshd_config
         让这几项生效:
         RSAAuthentication yes                         设置是否使用RSA算法进行安全验证
         PubkeyAuthentication yes                    
    设置是否使用公钥进行安全验证
         AuthorizedKeysFile %h/.ssh/authorized_keys    
    这里确定公钥的位置
         可选择关闭输入pasword认证:  
         PasswordAuthentication no

    步骤1: 用 ssh-key-gen 在本地主机上创建公钥和密钥
    local-host$ ssh-keygen -t rsa

    通常,此程序会生成密钥并要求提供一个存储私钥的文件。公钥存储在附加了 ".pub" 扩展名的同名文件中。该程序还要求提供口令短语。口令短语可以为空,表示没有口令短语(主机密钥必须具有空口令短语),也可以为任意长度的字符串。好的口令短语长度在 10-30 个字符,不是简单的句子或其他容易猜到的句子,由大写字母、小写字母、数字和非字母数字字符组合而成。(普通英文句子中的每个字只有 1-2 位的熵,提供的口令短语非常差。)如果设置口令短语,则长度必须至少为 4 个字符,后面可以使用 –p选项更改口令短语。

    然后全部回车,采用默认值.

         8. 重启sshd服务 sudo service sshd restart
         9. 连接即可,自己生成的keys在c:Users<username>AppDataRoamingSSHUserKeys中

    Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):[Enter key]
    Enter passphrase (empty for no passphrase): [Press enter key]
    Enter same passphrase again: [Pess enter key]
    Your identification has been saved in /home/jsmith/.ssh/id_rsa.
    Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub.
    The key fingerprint is: 33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9
    local-host

     

    3、这样生成了一对密钥,存放在用户目录的~/.ssh下。

     

    步骤2: 用 ssh-copy-id 把公钥复制到远程A主机上
    local-host$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
    remote-host‘s password:
    Now try logging into the machine, with ―ssh ?remote-host‘‖, and check in:
    .ssh/authorized_keys to make sure we haven‘t added extra keys that you weren‘t expecting.
    [注: ssh-copy-id 把密钥追加到远程主机的 .ssh/id_rsa 上.]

    无法恢复丢失的口令短语。如果丢失或忘记口令短语,您必须生成一个新密钥并将相应的公钥复制到其他计算机。

    将公钥考到对方机器的用户目录下 ,并将其复制到~/.ssh/authorized_keys中(操作命令:#cat id_dsa.pub >> ~/.ssh/authorized_keys )。

     

    步骤3: 直接登录A远程主机
    local-host$ ssh [email protected]
    Last login: Sat Mar 8 12:37:48 2014 from 192.168.1.3
    [注: SSH 不会询问密码.]

     

    4、设置文件和目录权限:

     

    然后通过sftp,将B机的id_rsa传到A机,把A的authorized_keys2传过来。此时A和B都可互相自动登陆。

    对于 RSA,密钥文件中还包含一个注释字段,该字段只是为了便于用户识别密钥。comment 字段可以说明密钥的用途或提供任何有用信息。创建密钥时,注释将初始化为 "user@host",但可以使用 –c 选项进行更改。

    设置authorized_keys权限

     

    测试结果:验证猜想成功,最好是有第三台linux再可以验证下就好了。

     

    $ chmod 600 authorized_keys

    二、服务器之间配置免密  秘钥登陆

    补充安全问题:由于.ssh文件夹和privatekey都权限为700和600,同时sftp服务器只开通sftp登陆权限和控制home文件目录,只要妥善保管privatekey,在ssh协议下是没有安全顾虑的。参见SSH认证原理(

    密钥生成后,可以使用下面的详细说明了解应将密钥放在何处,以便激活密钥。

    设置.ssh目录权限

    1.生成公钥私钥
                     $ ssh-keygen -t rsa -f ~/.ssh/id_rsa                    指定秘钥类型 目录 名字

    本文出自 “hiubuntu” 博客,请务必保留此出处

     

    $ chmod 700 -R .ssh

    Generating public/private rsa key pair.

    update:2014.3.9 4:21 PM,昨晚写完这篇之后,发现IBM的网上有篇关于...

    当我们需要跨服务器实现免密码自动登陆,因此我们首先需要使用ssh-keygen生成登陆密钥。生成登陆密钥需要三个步骤,在本地机器创建密钥,复制公钥到远程主机,将公钥追加到远程主机的**authorized_keys**

    5、要保证.ssh和authorized_keys都只有用户自己有写权限。否则验证无效。(今天就是遇到这个问题,找了好久问题所在),其实仔细想想,这样做是为了不会出现系统漏洞。

    Created directory '/home/hadoop/.ssh'.

     

    我从20.60去访问20.59的时候会提示如下错误:

    Enter passphrase (empty for no passphrase): 

     

    The authenticity of host '192.168.20.59 (192.168.20.59)' can't be established.  RSA key fingerprint is 6a:37:c0:e1:09:a4:29:8d:68:d0:ca:21:20:94:be:18.  Are you sure you want to continue connecting (yes/no)? yes  Warning: Permanently added '192.168.20.59' (RSA) to the list of known hosts.  root@192.168.20.59's password:  Permission denied, please try again.  root@192.168.20.59's password:  Permission denied, please try again.  root@192.168.20.59's password:  Permission denied (publickey,gssapi-with-mic,password).

    Enter same passphrase again: 

     

    三、总结注意事项

    Your identification has been saved in /home/hadoop/.ssh/id_rsa.      私钥

     

    1、文件和目录的权限千万别设置成chmod 777.这个权限太大了,不安全,数字签名也不支持。我开始图省事就这么干了

    Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.   公钥

    1: 生成钥文件和私钥文件

    2、生成的rsa/dsa签名的公钥是给对方机器使用的。这个公钥内容还要拷贝到authorized_keys

    The key fingerprint is:

    ** 

    3、linux之间的访问直接 ssh 机器ip

    38:95:cf:a6:78:37:ea:77:3a:20:a1:13:db:3f:2a:72 hadoop@master.hadoop

     

    4、某个机器生成自己的RSA或者DSA的数字签名,将公钥给目标机器,然后目标机器接收后设定相关权限(公钥和authorized_keys权限),这个目标机就能被生成数字签名的机器无密码访问了

    The key's randomart image is:

    ssh-keygen它支持RSA和DSA两种认证密钥,下面是的一些注意参数(可以使用 ssh-keygen /? 看看参数信息):

    ssh-keygen设置ssh无密码登录

    --[ RSA 2048]----

     

    ssh-keygen - 生成、管理和转换认证密钥,包括 RSA 和 DSA 两种密钥

    |                 |

     

    密钥类型可以用 -t 选项指定。如果没有指定则默认生成用于SSH-2的RSA密钥

    |         .       |

    –b bits
    
     
    
    指定要创建的密钥的位数。最小位数为 512 位。通常,2048 位足以满足安全需要。密钥大小超过该值并不会提高安全性,反而会降低速度。缺省值为 2048 位。
    
     
    
    –B
    
    显示指定的私钥或公钥文件的 bubblebabble 摘要。
    
     
    
    –c
    
    请求更改私钥和公钥文件中的注释。该程序会提示您提供包含私钥的文件、口令短语(如果密钥具有一个口令短语)以及新的注释。
    
    此选项仅适用于 rsa1 (SSHv1) 密钥。
    
     
    
    –C comment
    
    提供新注释。
    
     
    
     
    
    –e
    
     
    
    此选项读取 OpenSSH 私钥或公钥文件并将密钥以 "SECSH" 公钥文件格式输出到 stdout。此选项允许导出密钥供其他一些 SSH 实现使用。
    
    –f
    
     
    
    指定密钥文件的文件名。
    
    –F
    
     
    
    在known_hosts 文件中搜索指定的 hostname,列出找到的任何匹配项。此选项可用于查找散列格式的主机名或地址,还可以与 –H 选项一起使用,以散列格式输出找到的密钥。
    
     
    
    –H
    
     
    
    对 known_hosts 文件执行散列计算。此选项使用散列形式替换指定文件内的所有主机名和地址。原始内容将移动到后缀为 .old 的文件中。这些散列值通常由 ssh 和 sshd 使用,即使文件内容被公开,这些散列值也并不会透露可识别的信息。此选项不会修改现有的散列主机名,因此可以放心地用于同时包含散列名称和非散列名称的文件。
    
     
    
    –i
    
     
    
    此选项以 SSH2 兼容格式读取未加密的私钥(或公钥)文件并将 OpenSSH 兼容的私钥(或公钥)输出到 stdout。ssh-keygen 还可读取 “SECSH” 公钥文件格式。此选项允许从其他一些 SSH 实现中导入密钥。
    
     
    
    –l
    
     
    
    显示指定的私钥或公钥文件的指纹。
    
     
    
    –N new_passphrase
    
     
    
    提供新口令短语。
    
     
    
    –p
    
    请求更改私钥文件的口令短语,而不创建新私钥。该程序会提示您提供包含私钥的文件、旧口令短语,并两次提示您输入新口令短语。
    
     
    
    –P passphrase
    
    提供(旧)口令短语。
    
     
    
    –q
    
    退出 ssh-keygen。
    
     
    
    –t type
    
     
    
    指定用于生成密钥的算法,其中 type 是 rsa、dsa 和 rsa1 中的一种。rsa1 类型仅用于 SSHv1 协议。
    
     
    
    –R hostname
    
    从 known_hosts 文件中删除属于 hostname 的所有密钥。此选项可用于删除散列主机。请参见 –H。
    
     
    
    –x
    
    已过时。已被 –e 选项取代。
    
     
    
    –X
    
    已过时。已被 –i 选项取代。
    
     
    
    –y
    
    此选项读取 OpenSSH 私钥格式文件并将 OpenSSH 公钥输出到 stdout。
    

    配置:

    |        o        |

     

    1、在本地机器中的~/.ssh/目录下执行下命令

    |    . .o o       |

     

    ssh-keygen -t dsa

    |     =o.S      |

    判断.ssh目录是否存在,不存在则创建目录并赋予权限。目录存在即可跳过

    将生成两个文件,id_dsa和id_dsa.pub

    |     oo.o       |

     

    2、将id_dsa.pub拷贝到远程机器,并且将id_dsa.pub的内容添加到~/.ssh/authorized_keys中

    |     ..oo.o      |

     

    cat id_dsa.pub >>authorized_keys

    |  . E  .ooo..    |

    .ssh目录存在

    注意:目录.ssh和文件authorized_keys的权限必须是600

    |   o ..ooo.     |

     

    完成以上操作之后,用户从本地机器到远程机器就不需要用密码了

    -----------------

    $ ls -la ~/.ssh
    
    total 12
    
    drwx------  2 oracle oinstall 4096 May 20  2015 .
    
    drwx------ 22 oracle oinstall 4096 Jul  3 13:36 ..
    
    -rw-r--r--  1 oracle oinstall 1579 Dec  7  2017 known_hosts
    

    几个文件的作用说明,摘自

    2.将公钥拷贝到/home/hadoop/.ssh/authorized_key   中

     

    ~/.ssh/identity

          #cat /home/hadoop/.ssh/id_rsa.pub>>/home/hadoop/.ssh/authorized_key     设定权限

    .ssh目录不存在

    该用户默认的 RSA1 身份认证私钥(SSH-1)。此文件的权限应当至少限制为"600"。

          #chmod 600 ~/.ssh/authorized_key 

     

    生成密钥的时候可以指定采用密语来加密该私钥(3DES)。

            
    3.修改stricthostkeychecking  参数

    $ ls -la ~/.ssh
    
    ls: /home/oracle/.ssh: No such file or directory
    
    $mkdir ~/.ssh 
    
    $chmod 700 ~/.ssh
    

    ssh将在登录的时候读取这个文件。

         StrictHostKeyChecking"如果设为"yes",ssh将不会自动把计算机的密匙加入"$HOME/.ssh/known_hosts"文件,且一旦计算机的密匙发生了变化,就拒绝连接。

     

    ~/.ssh/identity.pub

           可以修改全局变量  vi /etc/ssh/ssh_config
           在这里设置   StrictHostKeyChecking no

    测试发现,其实执行下面命令生成ssh 密钥后,会在当前用户的主目录下创建.ssh目录。因此,上述步骤其实完全可以忽略

    该用户默认的 RSA1 身份认证公钥(SSH-1)。此文件无需保密。

           也可以只修改用户的ssh环境
           新建  ~/.ssh/config  
          Host 0.0.0.0
          StrictHostKeyChecking no

     

    此文件的内容应该添加到所有 RSA1 目标主机的 ~/.ssh/authorized_keys 文件中。

    最后改下权限  

     

    ~/.ssh/id_dsa

        chmod 600 ~/.ssh/config  

    [oracle@mylnx01 ~]$ ssh-keygen -t rsa
    
     
    
    Generating public/private rsa key pair.
    
     
    
    Enter file in which to save the key (/home/oracle/.ssh/id_rsa): 
    
     
    
    Enter passphrase (empty for no passphrase): 
    
     
    
    Enter same passphrase again: 
    
     
    
    Your identification has been saved in /home/oracle/.ssh/id_rsa.
    
     
    
    Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
    
     
    
    The key fingerprint is:
    
     
    
    ae:cb:6a:9c:60:72:bc:2c:27:dc:1f:06:e6:c8:1d:0c oracle@mylnx01.xxx.com
    

    该用户默认的 DSA 身份认证私钥(SSH-2)。此文件的权限应当至少限制为"600"。

     

     

    生成密钥的时候可以指定采用密语来加密该私钥(3DES)。

     

    上述可以按ENTER键后空格键跳过(口令短语可以为空),生成ssh 密钥后,可以到~/.ssh目录下查看相关文件,一般来说ssh 密钥会包含id_rsa和id_rsa.pub两个文件,分别表示生成的私钥和公钥。

    ssh将在登录的时候读取这个文件。

    总结注意事项

     

    ~/.ssh/id_dsa.pub

    1、文件和目录的权限千万别设置成chmod 777.这个权限太大了,不安全,数字签名也不支持。我开始图省事就这么干了

     

    该用户默认的 DSA 身份认证公钥(SSH-2)。此文件无需保密。

    2、生成的rsa/dsa签名的公钥是给对方机器使用的。这个公钥内容还要拷贝到authorized_keys

     

    此文件的内容应该添加到所有 DSA 目标主机的 ~/.ssh/authorized_keys 文件中。

    3、linux之间的访问直接 ssh 机器ip

     

    ~/.ssh/id_rsa

    4、某个机器A生成自己的RSA或者DSA的数字签名,将公钥给目标机器B,然后B接收后设定相关权限(公钥和authorized_keys权限),这个B就能 被生成数字签名的机器A无密码访问了

    2: 复制公钥到远程目标服务器

    该用户默认的 RSA 身份认证私钥(SSH-2)。此文件的权限应当至少限制为"600"。

     

    ** 

    生成密钥的时候可以指定采用密语来加密该私钥(3DES)。

     

     

    ssh将在登录的时候读取这个文件。

     

    #复制公钥到远程服务器,例如,此处为服务器192.168.xxx.xxx

    ~/.ssh/id_rsa.pub

     

    该用户默认的 RSA 身份认证公钥(SSH-2)。此文件无需保密。

    [oracle@mylnx01 ~]$ scp ~/.ssh/id_rsa.pub 192.168.xxx.xxx:~/.ssh 
    
     
    
    oracle@192.168.xxx.xxx's password: 
    
     
    
    id_rsa.pub     
    

    此文件的内容应该添加到所有 RSA 目标主机的 ~/.ssh/authorized_keys 文件中。

     

    /etc/ssh/moduli

    在复制密钥前,应该先去远程服务器(此处为mylnx02)执行下面操作。

    包含用于 DH-GEX 的 Diffie-Hellman groups

     

    BG2BLT01 is on, BG2BLT02 is power off. They’re too noisy L

     

    When and how to move them to data center?

    正确的操作步骤:

    Please update SSH key in .33 server for Git repo access.

     

    ssh-keygen -t dsa

    1:验证目录是否存在

    scp ~/.ssh/id_dsa.pub [YOUR_USER_NAME]@10.38.116.33:authorized_keys

     

    ssh [YOUR_USER_NAME]@ 10.38.116.33

    [oracle@mylnx02 ~]$  ls -la ~/.ssh

    skip below 3 steps if you already have .ssh and .ssh/authorized_keys

    ls: /home/oracle/.ssh: No such file or directory

    mkdir -m 700 .ssh

     

    touch .ssh/authorized_keys

    2: 创建.ssh目录(如果目录已经存在可以忽略后续步骤)

    chmod 600 .ssh/authorized_keys

     

    cat authorized_keys >> .ssh/authorized_keys;exit

    [oracle@mylnx02 ~]$ mkdir ~/.ssh

    vi ~/.ssh/config

     

    add lines and save quit

    3:  设置目录权限

    host 10.38.116.33

     

    user [YOUR_USER_NAME]

    [oracle@mylnx02 ~]$ chmod 700 ~/.ssh

     

    4: 创建空文件authorized_keys

     

    [oracle@mylnx02 ~]$ touch ~/.ssh/authorized_keys

     

    5:  给文件authorized_keys授权

     

    [oracle@mylnx02 ~]$ chmod 600 ~/.ssh/authorized_keys

     

    6:  验证上述操作

     

    [oracle@mylnx02 ~]$ ls -la ~/.ssh
    
    total 8
    
    drwx------  2 oracle oinstall 4096 Aug  1 07:20 .
    
    drwx------ 11 oracle oinstall 4096 Aug  1 07:20 ..
    
    -rw-------  1 oracle oinstall    0 Aug  1 07:20 authorized_keys
    

     

     

     

    3:追加公钥到远程主机的authorized_keys

     

    [oracle@mylnx02 ~]$  cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys

     

     

    注意事项:没有检查目标服务器是否存在.ssh目录(没有第二步骤检查路径,直接copy了文件),使用scp ~/.ssh/id_rsa.pub  192.168.xxx.xxx:~/.ssh 后,执行下面命令将会遇到下面错误

     

    [oracle@mylnx02 ~]$  cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
    
     
    
    -bash: /home/oracle/.ssh/authorized_keys: Not a directory
    
     
    
     
    
     
    
    [oracle@mylnx02 ~]$ ls -la ~/.ssh
    
     
    
    -rw-r--r-- 1 oracle oinstall 411 Aug  1 11:18 /home/oracle/.ssh
    

     

    如果遇到上述错误,应该删除rm -rf ~/.ssh ,然后按照上述步骤操作,即可解决问题。

     

     

     

     

    4: 测试验证结果

     

    [oracle@mylnx02 ~]$ ssh 192.168.7.xxx  free -m
    
                 total       used       free     shared    buffers     cached
    
    Mem:         32237      32072        165          0        137      11493
    
    -/  buffers/cache:      20441      11796
    
    Swap:        12287          0      12287
    
    [oracle@mylnx02 ~]$ ssh 192.168.7.222  date
    
    Thu Aug  2 23:47:07 CST 2018
    

     

     

    参考资料:

    本文由新葡亰496net发布于电脑系统,转载请注明出处:新葡亰496net:秘钥登入,CentOS多台服务器共用密

    关键词:

上一篇:没有了

下一篇:没有了