Linux入门小抄-part4.3-Linux高阶知识点(下)--ssh免密登录

SSH免密登录配置

这部分蛮重要的,所以拿出来单独说一下

1.ssh概念

SSH为Secure Shell(安全外壳协议)的缩写,简单说,SSH只是一种网络协议,用于计算机之间的加密登录,很多ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而SSH就是专为远程登录会话和其他网络服务提供安全性的协议。

SSH是由客户端和服务端的软件组成的服务端是一个守护进程(sshd),他在后台运行并响应来自客户端的连接请求。客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。

2.SSH认证机制

从客户端来看,SSH提供两种级别的安全验证。

第一种级别(基于口令的安全验证)

只要你知道自己帐号和口令,就可以登录到远程主机。

第二种级别(基于密钥的安全验证)

需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密”质询”(challenge)并把它发送给客户端软件。客户端软件收到”质询”之后就可以用你的私人密匙解密再把它发送给服务器。

3.原理图

4.配置ssh免密

假如hdp01要登录hdp02:

在hdp01上进行操作:

  • 第一步:生成密钥对,使用命令:

ssh-keygen -t rsa  或者简写为   ssh-keygen  

提示要输入信息的时候不用输入任何东西,直接回车三次就OK

上述命令执行完成之后,会生成这么两个文件,其中id_rsa.pub是公钥,但是我们检查当前目录,发现并没有.其实生成的文件在家目录的.ssh/这个隐藏目录下.

  •  第二步:将hdp01自己的公钥放置到授权列表文件authorized_keys中 cat id_rsa.pub > authorized_keys  或者  cp id_rsa.pub authorized_keys
  • 第三步:将得到的authorized_keys发送给hdp02机器对应的文件夹下  scp -r authorized_keys [email protected]:$PWD  或者  scp -r authorized_keys [email protected]:/root/.ssh/

上面的是一个远程拷贝命令,意思是把authorized_keys拷贝到192.168.123.202这台机器对应目录下

  • 第四步:检验hdp01能否访问hdp02:使用  ssh 192.168.123.202 只有第一次访问需要输入密码,以后再访问就不需要了

 注意注意注意

从上面第二步开始:我们介绍另外一种配置方式:

我们这里生成完当前hdp01的公钥后,直接在命令行输入 ssh-copy-id hdp02  这里有个前提,就是我们的/etc/hosts中配合了主机映射.能让我们输入hdp02这个主机名就能映射到其主机ip

这里我们输入yes确认后输入hdp02的密码后,回车

这个时候我们来到hdp02这个机器里面的/root/.ssh/目录下会发现:自动多了一个authorized_keys文件.

我们查看里面的内容:如下图,其实就是hdp01的公钥.

 这个时候我们再ssh hdp02就不需要输密码了.这种方式是不是比前面的那种简单一些.貌似只需要两步就可以了.

①.ssh-keygen   ②. ssh-copy-id 另外一台主机ip/映射名

注意:这只是hdp01 免密访问 hdp02 .这是个单向的过程.

重点理解之处:A将公钥发给B,不是B可以访问A,而是A可以访问B,所以任何一台机器想要能访问其他机器,那么就把自己的公钥内容发送到别的机器的authorized_keys中去,记住,是追加,不是覆盖

猜你喜欢

转载自blog.csdn.net/XiaodunLP/article/details/83794495
今日推荐