永利平台娱乐:私有密钥(private key,以及供 S

2019-10-05 14:47 来源:未知

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

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

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来完成这个操作。


非对称加密简介:

 

模型分析

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

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

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

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

 

要达到的目的:

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

    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

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

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

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

永利平台娱乐 1

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.

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

 

 

1、登录A机器


使用秘钥登录linux:

  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服务器

 

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

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

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. 完成

 

双向登陆的操作过程:

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

通常,希望将 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、两个节点都执行操作:#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

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

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

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

 

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

 

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

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

 

 

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

 

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

设置authorized_keys权限

 

 

$ chmod 600 authorized_keys

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

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

设置.ssh目录权限

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

 

$ chmod 700 -R .ssh

Generating public/private rsa key pair.

当我们需要跨服务器实现免密码自动登陆,因此我们首先需要使用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:

TAG标签:
版权声明:本文由永利平台娱乐发布于关于我们,转载请注明出处:永利平台娱乐:私有密钥(private key,以及供 S