Linux公钥免密登录

本文详细描述了如何在Linux服务器A和B之间实现root用户间的免密登录,包括使用ssh-keygen生成公私钥、传输公钥至对端并配置authorized_keys,以及SSH工作流程。方法涉及版本协商、加密算法选择和认证过程。
摘要由CSDN通过智能技术生成

现有A,B俩台使用linux操作系统的服务器,其IP地址分别为192.168.20.126,192.168.20.127.

想要A服务器的root用户免密登录B服务器的root用户。

方法1:

    A服务器操作:

ssh-keygen -t rsa 
//在用户家目录的.ssh目录下(如没有则自动帮你生成)生成私钥id_rsa和公钥id_rsa.pub
//该对公私钥是针对A服务器root用户的,免密登录时每一个用户都要有自己的一对公私钥

scp /root/.ssh/id_rsa.pub 192.168.20.127:/root/.ssh 
//将公钥传输到B服务器的/root/.ssh目录下,传输前必须保证该目录存在

   B服务器操作:

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
//将A服务器传来的公钥保存到authorized_keys文件下
该文件中将包括公钥免密登录的用户名和服务器IP地址与对应的公钥

之后A服务器的root用户便可免密登录B服务器的root用户

ssh root@192.168.20.127

方法2(简便操作):

  假如现在让服务器B的root用户用公钥免密登录服务器A的root用户

只需要B服务器

ssh-keygen -t rsa
//生成基于rsa算法的公钥私钥

ssh-copy-id root@192.168.20.126
//自动将用户的公钥传输到A服务器root用户家目录下的.ssh/authorized_keys中去


之后B服务器的root用户便可直接免密登录服务器A的root用户

ssh root@192.168.20.126

 这样操作变简单了许多。

密钥免密登录原理

1.将终端登录的公钥提前放入到服务器端用户对应的authorized_keys文件中。

2.当终端请求公钥免密登录服务器时,服务器生成一个随机数并根据authorized_keys文件中的该请求终端的用户和IP地址找到相对应的公钥。

3.使用找到的公钥加密步骤2中的随机数,并返回给终端。

4.终端收到该加密数据后使用自己的私钥解密,并且用哈希MD5算法对该数进行处理,之后返回给服务器。

5.服务器收到后,先对步骤2中生成的随机数进行同样的MD5算法,之后让该数与终端返回的数据进行比对,如一致则认证成功。终端公钥免密登录服务器成功。

ssh工作流程

过程说明
版本号协商阶段SSH目前包括SSH1和SSH2两个版本,双方通过版本协商确定使用的版本
密钥和算法协商阶段SSH支持多种加密算法,双方根据本端和对端支持的算法,协商出最终使用 的算法
认证阶段SSH客户端向服务器端发起认证请求,服务器端对客户端进行认证
会话请求阶段认证通过后,客户端向服务器端发送会话请求
交互会话阶段会话请求通过后,服务器端和客户端进行信息的交互

1.版本号协商:双方就ssh版本号进行协商,该过程使用明文传输。

2.密钥和算法协商阶段:双方就对面支持的加密算法进行协商,并协商出会话密钥和会话ID,来保证之后传输数据的安全性。

3.认证阶段:服务器认证客户端的身份,可以使用口令认证(密码认证),也可以使用密钥认证(上面有提)

4.认证成功后客户端对服务器端发出会话请求

5.如服务器端同意会话请求,则客户端和服务器端可进行信息的交互

ssh工作流程中分别使用到了对称加密与非对称加密,比如使用非对称加密传输了对称加密中的密钥。

常见的对称加密算法有 AES、SM4、ChaCha20、3DES、Salsa20、DES、Blowfish、IDEA、RC5、RC6、Camellia。

常见的对称加密算法有RSA算法、椭圆曲线密码算法(ECC)、ElGamal算法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值