linux主机互信

linux配置ssh互信

什么叫linux主机互信:

Linux主机互信,就是主机之间相互信任,什么是信任,就像人与人之间一样,不需要利用金钱等(除了你自己以外其他的东西)来取得对方的信任,大家相互信任对方,不需要额外的凭证。就好比你,你爸,你妈,你姐之间,不需要钱来维持你们之间的信任。同样,linux主机之间也是,我们从一台主机登陆到另一台时,往往需要验证你,需要你输入用户密码,才允许你登陆。这样在多台机器之间来回切换登陆就会频繁输入密码,非常麻烦,看看,一切的根源来自于互不信任。可不可以不用输入密码就直接登陆呢?答案是可以,但条件是主机之间相互信任对方。

因此ssh互信就诞生了。我们在主机值之间配置了公钥认证后,也就是取得信任之后,就不必再输入密码了(当然实际上是ssh使用rsa算法帮你完成了验证过程)。

公钥认证的基本思想:

对信息的加密和解密采用不同的key,这对key分别称作private key和publickey,其中,public key存放在欲登录的服务器上,而privatekey为特定的客户机所持有。当客户机向服务器发出建立安全连接的请求时,首先发送自己的public key,如果这个public key是被服务器所允许的,服务器就发送一个经过public key加密的随机数据给客户机,这个数据只能通过private key解密,客户机将解密后的信息发还给服务器,服务器验证正确后即确认客户机是可信任的,从而建立起一条安全的信息通道。通过这种方式,客户机不需要向外发送自己的身份标志“private
key”即可达到校验的目的,并且private key是不能通过public key反向推断出来的。这避免了网络窃听可能造成的密码泄露。客户机需要小心的保存自己的private key,以免被其他人窃取,一旦这样的事情发生,就需要各服务器更换受信的publickey列表。

使用过github的用户就会知道,用git登陆远程仓库github的时候,也会有公钥认证(当然是首次使用git时),首次使用git,就会要求你在客户端生成一个rsa key pairs,一个public-key存放于id_rsa.pub,一个private-key存放于id_rsa,并且上传你的公钥public-key到github上,这样做的目的就是你可以取得github的信任,也就是github信任你,下次你登录的时候,github会使用你上传的公钥来验证你的身份,从而不用输入密码。当然这个过程只是单向的信任,也就是github现在信任你,但是你并没有建立对github的信任,需要建立么,其实没有必要,因为github是不会主动向你发出请求的,大多数情况是你需要主动向github发送请求。

知道了单向信任,那么相互信任就简单了,就是主机之间的公钥都要告知对方,这样才能相互信任,你信任我,我信任你。那么,以下就是互信建立的步骤了:

配置ssh互信的步骤如下:

1. 首先,在要配置互信的机器上,生成各自的经过认证的key文件;

2. 其次,将所有的key文件汇总到一个总的认证文件中;

3. 将这个包含了所有互信机器认证key的认证文件,分发到各个机器中去;

4. 验证互信。

在主机名为node1,node2,node3上以相同的用户test创建ssh互信。

1.在每个节点上创建 RSA密钥和公钥

使用test用户登陆

mkdir~/.ssh

chmod700 ~/.ssh

cd~/.ssh

ssh-keygen-t rsa

2.整合公钥文件

在node1上执行以下命令

sshnode1 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

sshnode2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

sshnode3 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

chmod600 ~/.ssh/authorized_keys

3.分发整合后的公钥文件

在node1上执行以下命令

scp~/.ssh/authorized_keys  node2:~/.ssh/

scp~/.ssh/authorized_keys  node3:~/.ssh/

4.测试ssh互信

在各个节点上运行以下命令,若不需要输入密码就显示系统当前日期,就说明SSH互信已经配置成功了。

sshnode1 date

sshnode2 date

sshnode3 date

一下是我的实验

[[email protected] .ssh]$ ssh-keygen-t rsa

Generating public/private rsa key pair.

Enter file in which to save the key(/home/ocdc/.ssh/id_rsa):

/home/ocdc/.ssh/id_rsa already exists.

Overwrite (y/n)? y

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in/home/ocdc/.ssh/id_rsa.

Your public key has been saved in/home/ocdc/.ssh/id_rsa.pub.

The key fingerprint is:

b3:e7:19:4b:e1:59:0d:b5:4d:ba:04:89:81:9d:37:[email protected]

The key‘s randomart image is:

+---[RSA 2048]----+

|        oE=oo. .|

|       . + +o = |

|          ...+ .|

|             + . |

|       S . . o  |

|        + +     |

|       . *      |

|        + +     |

|         +      |

+-----------------+

然后在各个需要互信的接口机上重复以上步骤生成认证文件

回到接口机1,

[[email protected] .ssh]$ ssh10.31.100.21 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

[email protected]‘s password:

[[email protected] .ssh]$ ssh10.31.100.22 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

[email protected]‘s password:

[[email protected] .ssh]$ ssh10.31.100.23 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

[email protected]‘s password:

[[email protected] .ssh]$ ssh10.31.100.24 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

[email protected]‘s password:

[[email protected] .ssh]$ catauthorized_keys

可以看到所有主机的公钥都存在了authorized_keys中。接下来就是分发这个整合后的证书了。

[[email protected] .ssh]$ scp~/.ssh/authorized_keys 10.31.100.21:~/.ssh/

[email protected]‘s password:

authorized_keys                                                                                  100% 3219     3.1KB/s   00:00

[[email protected] .ssh]$ scp~/.ssh/authorized_keys 10.31.100.22:~/.ssh/

[email protected]‘s password:

authorized_keys                                                                                  100% 3219     3.1KB/s   00:00

[[email protected] .ssh]$ scp~/.ssh/authorized_keys 10.31.100.23:~/.ssh/

[email protected]‘s password:

authorized_keys                                                                                  100% 3219     3.1KB/s   00:00

[[email protected] .ssh]$ scp~/.ssh/authorized_keys 10.31.100.24:~/.ssh/

[email protected]‘s password:

authorized_keys                                                                                  100% 3219     3.1KB/s   00:00

任务完成,验证是否成功

[[email protected] .ssh]$ ssh10.31.100.21 date

Wed May 27 20:39:39 CST 2015

[[email protected] .ssh]$ ssh10.31.100.22 date

Wed May 27 20:39:45 CST 2015

[[email protected] .ssh]$ ssh10.31.100.23 date

Wed May 27 20:39:51 CST 2015

[[email protected] .ssh]$ ssh10.31.100.24 date

Wed May 27 20:39:55 CST 2015

时间: 2024-08-04 07:28:05

linux主机互信的相关文章

阿里云linux主机安装启动Jenkins

1.安装 网上查到的关于安装Jenkins的文章,都是需要先安装JDK和Tomcat,然后把war包丢进去运行.但是官方的介绍里面没有说要用Tomcat. 事实证明是不需要Tomcat的.而且Jenkins默认使用的也是8080端口,如果之前有启动默认配置的Tomcat,还需要先停掉. 我的服务器系统版本是CentOS 6.3,对应的说明是 Installing Jenkins on Red Hat Distributions 按照官方说明依次输入如下命令 #wget -O /etc/yum.r

阿里云linux主机安装jdk

1.首先要查看服务器的系统版本,是32位还是64位 uname -a Linux AY131105092932706327Z 2.6.32-358.6.2.el6.x86_64 #1 SMP Thu May 16 20:59:36 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux x86_64是64位,如果还不确定,可以再换个命令 getconf LONG_BIT 64 上面这个命令是查看CPU当前运行模式 2.下载64位版本的jdk jdk-7u67-linux-

Monitorix监控Linux主机图文详解

Monitorix监控Linux主机图文详解 Monitorix简介 Monitorix 是一款自由开源的轻巧型系统监视工具.使用 Monitorix你可以随时掌控 CPU 负载及温度.内存占用.活动进程.磁盘使用及温度.网络设备流量.网络服务等全方位的系统信息.Monitorix 需要 Apache Web 服务器来显示这些系统信息图表.所以它特别适合在 Linux 服务器上面使用. 下面是我安装的步骤 1.安装的环境和需要的rpm包 我是在CentOS 6.4下面安装的CentOS 5可以使

Linux主机上使用交叉编译移植u-boot到树莓派

0环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS: Debian Jessie Raspbian Jessie 1树莓派的启动过程 树莓派1,2,3的启动过程大致相同,主要分为3个阶段:ROM上的GPU bootloader启动GPU,GPU启动CPU,CPU直接启动内核或通过u-boot启动内核. 由于树莓派涉及到GPU的东西不开源,移植u-boot到树莓派并不是真正

Linux主机实现简单的路由转发功能

只要在Linux主机上添加一些简单的路由条目, 这些Linux主机就可以充当简单路由器的功能. 在实际生产坏境中, 当我们需要一台路由器简单作为转发数据, 但是手上却没有路由器的话, 我们就可以指定一台Linux主机充当一个简单的路由器,实现路由简单的转发. 上面所诉尤其强调简单, 所以说只是实现简单的路由的功能, 如果要实现非常复杂的功能的话, 一台Linux主机可能无法实现你想要的条件. 实验坏境: 基于VMware上的4台虚拟主机,主机名为R1.R2的两台主机(都是centos6.8系统)

小凡的Linux主机与时间服务器同步记录

小凡的Linux主机与时间服务器同步记录 导读 我们新安装的Linux主机,如果没有做与互联网服务器时间同步的处理的话,当我们使用date命令的时候,我们就看不到当前的时间,只能看到过去的时间.在我们接下来的Linux学习过程中,经常需要利用到实时时间,所以与互联网时间同步,是我们安装Linux系统后迫切需要解决的问题.今天,小凡就手把手交你,如何通过定时任务,将你的Linux主机时间和互联网时间服务器同步! 1.了解定时任务工具crontab a.相关命令的介绍 crontab -u # 设定

Windows与Linux主机之间的连接和交互工具

1.Putty 远程连接Linux主机 Windows主机上安装putty,工具打开后显示如下: 输入要连接的Linux主机的IP地址,点击Load,连接主机后输入用户名密码,即可登录Linux主机 2.WinSCP 文件传输工具 在Windows主机上安装WinSCP后,可以远程连接Linux主机,两台主机间可进行文件的相互传输,也可以直接对Linux主机上的文件进行查看.编辑.删除等操作 (1)工具打开后显示如下: (2)输入要连接的Linux主机的IP地址,用户名密码,登录成功后显示如下:

pietty 指定私钥远程登陆linux主机问题

问题的起因是因为远程Linux主机不允许用密码登录(安全考虑) ,只能用指定的秘钥登录,秘钥的文件格式是.pem然后我就在pietty->option->more option->ssh->auth将要到的秘钥文件放进去 再次指定ip登录发现还是不行, 蛋疼~于是网上看了一下说putty只能用putty指定格式的秘钥文件才可以,于是下了个puttygen.exe 这东西应该是如果你已经有私钥了那么load下你已经有的私钥文件就可以了然后自动生成个.ppk文件如果没有私钥他会自动生成

linux主机上编译安装rpcapd实现wireshark远程抓包功能

使用wireshark在远程linux系统抓包 简介 由于在做分布式HLR时,需要一边测试,一边抓取信令消息,而现在分布式HLR的系统都是采用linux,抓包可以使用tcpdump工具,不过感觉不是很方便.正好,之前的测试的同事,已经实现了使用笔记本上的wireshark远程抓包,而我以前对此没有做过了解,不是很懂,抽空在网上查了查资料,大概屡清楚了实现方法.实现远程抓包,主要借助winpacp这个软件中的rpcapd工具,这里就对在linux下的rpcapd工具的安装,使用和windows下的