ssh-keygen介绍

使用数字签字OdysseySA或许DSA达成三个linux机器之间利用ssh没有要求客商名和密码,rsassh

为了让七个linux机器之间利用ssh无需客商名和密码。所以选拔了数字具名EvoqueSA可能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、有个别机器生成本人的SportageSA恐怕DSA的数字签字,将公钥给指标机器,然后指标机器接纳后设定相关权限(公钥和authorized_keys权限卡塔尔(英语:State of Qatar),那些目的机就能够被转移数字签字的机器无密码访谈了

ssh-keygen设置ssh无密码登陆

ssh-keygen – 生成、管理和改动认证密钥,满含 LANDSA 和 DSA 二种密钥

密钥类型能够用 -t 选项内定。若无一点点名则默许生成用于SSH-2的途锐SA密钥

配置:

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

该客商私下认可的巴博斯 CL级SA1居民身份注解私钥(SSH-1卡塔尔。此文件的权限应当起码节制为”600″。

浮动密钥的时候能够内定接受密码语言来加密该私钥(3DES卡塔尔(英语:State of Qatar)。

ssh将在登入的时候读取那么些文件。

~/.ssh/identity.pub

该顾客默许的SportageSA1身价申明公钥(SSH-1卡塔尔(قطر‎。此文件没有必要保密。

此文件的内容应当加上到全体HavalSA1指标主机的~/.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

该客户默许的昂CoraSA居民身份注脚私钥(SSH-2卡塔尔国。此文件的权柄应当最少限制为”600″。

变动密钥的时候能够钦命选拔密码语言来加密该私钥(3DES卡塔尔(قطر‎。

ssh就要报到的时候读取这一个文件。

~/.ssh/id_rsa.pub

该顾客暗许的GL450SA身份认证公钥(SSH-2卡塔尔国。此文件无需保密。

此文件的内容应当加上到具有WranglerSA指标主机的~/.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无需顾客名和密码。所以…

 

维基百科上关于ssh-keygen的牵线如下:

 

   
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.

 

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

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.

 

  Oracle
Solaris 11.2 Information Library (简体普通话卡塔尔手册中关于ssh-keygen的介绍如下: 

 

ssh-keygen重要用来为ssh(远程登入程序卡塔尔(英语:State of Qatar)生成、管理和转移验证密钥。ssh-keygen 能够成立供 SSH 合同版本 1 行使的 奥迪Q3SA 密钥,以至供 SSH 公约版本 2 使用的 卡宴SA 或 DSA
密钥。生成的密钥类型应用–t选项钦点。ssh-keygen 还是能更动指纹或从钦赐为 PKCS#11 U瑞虎I 的 X.509v3
证书转换公钥。

 

经常,希望将 SSH 与 ENCORESA 或 DSA
验证结合使用的每一个客商应运作二次此实用程序,以便在 $HOME/.ssh/identity、$HOME/.ssh/id_dsa 或 $HOME/.ssh/id_rsa 中开创验证密钥。系统管理员还足以采纳此实用程序生成主机密钥。

 

平常,此程序会转移密钥并供给提供二个仓库储存私钥的公文。公钥存款和储蓄在增大了 “.pub”
扩大名的同名文件中。该程序还需求提供口令短语。口令短语可感到空,表示从未口令短语(主机密钥必得具有空口令短语),也可认为随便长度的字符串。好的口令短语长度在 10-贰拾多少个字符,不是简轻松单的语句或任何轻松猜到的语句,由大写字母、小写字母、数字和非字母数字字符组合而成。(普通法文句子中的各样字唯有 1-2
位的熵,提供的口令短语很倒霉。)借使设置口令短语,则长度必需最少为 4
个字符,前面能够利用
–p选项校勘口令短语。

 

敬谢不敏恢复生机错过的口令短语。如若错失或忘记口令短语,您必得生成四个新密钥并将相应的公钥复制到别的计算机。

 

对此
GL450SA,密钥文件中还带有三个讲解字段,该字段只是为了有助于顾客识别密钥。comment 字段能够作证密钥的用项或提供其余有用消息。成立密钥时,注释将开头化为
“user@host”,但能够动用
–c 选项实行校正。

 

密钥生成后,能够采取上面的亲力亲为表达理解应将密钥放在哪个地方,以便激活密钥。

 

当大家须要跨过服务器务器实现免密码自动登录,由此咱们率先须求采纳ssh-keygen生成登入密钥。生成登录密钥须要五个步骤,在地头机械成立密钥,复制公钥到长途主机,将公钥追加到长途主机的**authorized_keys**

 

 

 

 

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

*www.512.net,* 

 

ssh-keygen它帮助TiguanSA和DSA三种注解密钥,上面是的生龙活虎部分在意参数(能够动用
ssh-keygen /? 看看参数新闻):

 

 

–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。

 

 

判定.ssh目录是或不是存在,空中楼阁则开创目录并予以权力。目录存在就可以跳过

 

 

.ssh目录存在

 

$ 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

 

.ssh目录不设有

 

$ ls -la ~/.ssh

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

$mkdir ~/.ssh 

$chmod 700 ~/.ssh

 

测量试验开采,其实执行下边发号布令生成ssh
密钥后,会在当下客商的主目录下创制.ssh目录。因而,上述手续其实完全能够忽视

 

 

[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

 

上述能够按ENTEMurano键后空格键跳过(口令短语可以为空),生成ssh 密钥后,能够到~/.ssh目录下查六柱预测关文件,日常的话ssh 密钥会富含id_rsa和id_rsa.pub四个文本,分别代表生成的私钥和公钥。

 

 

 

 

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

** 

 

#复制公钥到长途服务器,举例,此处为服务器192.168.xxx.xxx

 

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

 

oracle@192.168.xxx.xxx's password: 

 

id_rsa.pub     

 

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

 

 

不错的操作步骤:

 

1:验证目录是还是不是存在

 

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

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

 

2:
创造.ssh目录(如若目录已经存在能够忽略后续手续)

 

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

 

3: 
设置目录权限

 

[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

 

 

参照他事他说加以考查资料: