SSH原理与应用

1、定义

        双机互信——是指互信的双方主机在进行SSH登陆对方时无须输入密码。(SSH(Secure Shell缩写),由 IETF 的网络工作小组所制定的建立在应用层和传输层基础上的安全协议。可以建立起多台主机之间的安全的加密传输,以进行远程的访问、操控、传输数据。)

2、原理

        所谓双机互信是使用一种被称为"公私钥"认证的方式来进行SSH登录。所谓"公私钥"认证方式是指:首先在客户端上创建一对公私钥(公钥文件:~/.ssh/id_rsa.pub;私钥文件:~/.ssh/id_rsa),然后把公钥放到服务器上的一个总认证文件中(~/.ssh/authorized_keys),自己保留好私钥。当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配。如果匹配成功就可以无需输入密码成功登录。

 

3、实例应用

3.1 实验环境

A机:192.168.1.1 主机名:linux-1

B机:192.168.1.2 主机名:linux-2

       A机上用户只需要通过 ssh 192.168.1.2   ----查看是否提示需要输入密码

       B机上用户只需要通过 ssh 192.168.1.1

       若无需密码可以直接相互访问,则说明相互之间已经建立互信(ssh)关系;若需要输入密码,则说明还未建立,需要进行以下互信的配置。

3.2双机建立信任配置

(以A、B互信为例)

步骤一:在A机生成安全信任关系证书(即公私钥文件)

1)、以etl0用户登录主机A,执行以下命令:

 

>mkdir .ssh        -----在家目录下创建“. ssh”目录。

 

2)、在Aetl0用户下执行ssh-keygen命令:

> ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

该步骤是在A主机的etl0用户家目录下的.ssh子目录中生成私钥证书id_rsa和公钥证书id_rsa.pub

 

步骤二、查看步骤一中生成密钥的文件

>cd .ssh

>ll

 

步骤三: AB建立信任关系

1)、将A上的公钥证书id_rsa.pub复制到机器Betl0家目录下

etl0用户登录A,执行如下命令:

>scp~/.ssh/id_rsa.pub etl0@192.168.1.2:/home/etl0

 

2)、将B上的公钥文件放入/.ssh/目录下的总认证文件中

etl0用户登录B主机,执行如下命令:

>mkdir.ssh  (先在B上建立.ssh文件夹)

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

 

3)、修改总认证文件(~/.ssh/authorized_keys)的读写权限:   

执行如下命令:

>chmod u+x ~/.ssh/authorized_keys

 

此时AB的信任关系已经建立。

步骤四、 BA建立信任关系(步骤和上述三步同理)

1)、etl0用户登录B主机,输入如下命令生成B的公私钥文件,并查看生成文件是否成功:

    

命令如下:

>ssh-keygen-t dsa -P '' -f ~/.ssh/id_dsa

>cd.ssh

>ll

 

2)、将B的公钥证书id_rsa.pub复制到机器Aetl0家目录下

Betl0用户下,执行如下命令:

>scp~/.ssh/id_rsa.pub etl0@192.168.1.1:/home/etl0

其中:192.168.1.1 A主机的AIP地址。

3)、将A上的公钥文件放入自己的总认证文件中

etl0用户登录A主机,执行如下命令:

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

4)、给A上的总认证文件(~/.ssh/authorized_keys)赋读写权限,执行如下命令:

>chmodu+x ~/.ssh/authorized_keys

至此双机互信已建立完成。

3.3 双机互信验证

场景1)、远程登陆命令

命令格式:ssh远程主机IP地址

> ssh 192.168.1.2    (A主机上远程登录B)

上述命令执行后,终端输出的是对端主机的主机名,而不是当前登录的主机的主机名。可用 hostname命令查看。

 

AB信任关系已经建立!

 

退出执行logout命令:

 

下面同理验证BA的信任:

> ssh 192.168.1.2    (B主机上远程登录A)

 

场景2)、验证无密码scp传输数据(将A上的/home/etl0/mlhtest文件夹拷贝到B上的/home/etl0/temptest/目录下

A机上执行:

# scp -r mlhtest 192.168.1.2:/home/etl0/temptest/

 

B机上查看:

 

同理: B可以不输入密码,scp数据到A中,不再赘述。

3.4 SSH的优点

SSH连接是CS模型(客户端-服务器),客户端发出连接申请,服务器对客户端进行验证,再考虑是否接受连接申请。

如果直接从客户端将用户密码传输到服务器,那么密码信息很容易被中间人截获,从而实现重放攻击。ssh的实现方式是:

1.客户端向ssh服务器发出请求,服务器将自己的公钥返回给客户端;

2.客户端用服务器的公钥加密自己的登录密码,再将信息发送给服务器;

3.服务器接收到客户端传送的密码,用自己的私钥解码,如果结果正确,则同意登录,建立起连接。

 

3.5 SSH的缺点

这种方式还是有漏洞的,中间人可以假扮成服务器,骗取客户端的密码。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值