ssh 无登录密码要应用公匙与公钥。linux下能够用ssh-keygen转化成公匙/公钥对,下边我终CentOS为例子。
有设备A(192.168.1.155),B(192.168.1.181)。现想A根据ssh免登录密码到B。
最先以root帐户登录为例子。
1.在A机下转化成公匙/公钥对。
[root@A ~]# ssh-keygen -t rsa -P ''
-P表明登陆密码,-P '' 就表明空登陆密码,还可以无需-P主要参数,那样就需要三车回车键,用-P就一次回车键。
该指令将在/root/.ssh文件目录下边造成一对密匙id_rsa和id_rsa.pub。
一般选用的ssh的rsa密匙:
id_rsa 公钥
id_rsa.pub 公匙
以下指令造成不一样种类的密匙
ssh-keygen -t dsa
ssh-keygen -t rsa
ssh-keygen -t rsa1
2.把A机下的/root/.ssh/id_rsa.pub 拷贝到B机的 /root/.ssh/authorized_keys文件里,需先在B机里建立好 /root/.ssh 这一文件目录,用scp拷贝。
[root@A ~]# scp /root/.ssh/id_rsa.pub root@192.168.1.181:/root/.ssh/authorized_keys
root@192.168.1.181's password:
id_rsa.pub 100% 223 0.2KB/s 00:00
因为都还没免登录密码的,因此 要键入一次B机的root登陆密码。
3.authorized_keys的管理权限如果600!!!
[root@B ~]# chmod 600 /root/.ssh/authorized_keys
4.A机登陆B机。
[root@A ~]# ssh -l root 192.168.1.181
The authenticity of host '192.168.1.181 (192.168.1.181)' can't be established.
RSA key fingerprint is 00:a6:a8:87:eb:c7:40:10:39:cc:a0:eb:50:d9:6a:5b.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.181' (RSA) to the list of known hosts.
Last login: Thu Jul 3 09:53:18 2008 from root
[root@B ~]#
第一次登陆是时想要你键入yes。
如今A机能够无登录密码B机了。
总结:登陆的机器可有公钥,被登陆的机器要有登陆机器的公匙。这一公匙/公钥对一般在公钥宿主机造成。上边是用rsa优化算法的公匙/公钥对,自然还可以用dsa(相匹配的文档是id_dsa,id_dsa.pub)
想让A,B机无登陆密码互登陆,那B机以上边一样的方法配备就可以。
SSH-KeyGen 的使用方法
假定 A 为顾客设备,B为总体目标机;
要做到的目地:
A设备ssh登录B设备不用输入支付密码;
加密算法选 rsa|dsa均能够,默认设置dsa
作法:
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-keygen做登陆密码认证能够使在向另一方设备上ssh ,scp无需应用登陆密码.
具体做法以下:
ssh-keygen -t rsa
随后所有回车键,选用初始值.
那样转化成了一对密匙,储放在客户文件目录的~/.ssh下。
将公匙考到另一方设备的客户文件目录下,并拷贝到~/.ssh/authorized_keys中。
要确保.ssh和authorized_keys都仅有客户自身有写管理权限。不然认证失效。(今日便是碰到这个问题,找了好长时间存在的问题),实际上细心想一想,那样做是为了更好地不容易发生安全漏洞。