CentOS 8 SSH的密钥对配置

一、概述

SSH协议是采用了基于密钥的安全验证方式用于远程管理的,需要依靠密钥,也就是必须事先建立一对密钥对,然后把公用密钥(锁头)(Public key)放在需要访问的目标服务器上,另外,还需要把私有密钥(钥匙)(Private key)放到SSH的客户端或对应的客户端服务器上。

二、加密算法

(1)对称加密

1、概念

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用

2、常用算法

在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。

3、特点

1、加密方和解密方使用同一个密钥;
2、加密解密的速度比较快,适合数据比较长时的使用;
3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦;

4、优缺点

对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。
对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。

(2)非对称加密

1、概念

非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

2、常用算法
  • RSA(RSA algorithm):目前使用最广泛的算法
  • DSA(Digital Signature Algorithm):数字签名算法,和 RSA 不同的是 DSA
    仅能用于数字签名,不能进行数据加密解密,其安全性和RSA相当,但其性能要比RSA快
  • ECC(Elliptic curve cryptography,椭圆曲线加密算法)
  • ECDSA:Elliptic Curve Digital Signature Algorithm,椭圆曲线签名算法,是ECC和 DSA
    的结合,相比于RSA算法,ECC 可以使用更小的秘钥,更高的效率,提供更高的安全保障
3、原理

首先ssh通过加密算法在客户端产生密钥对(公钥和私钥),公钥发送给服务器端,自己保留私钥,如果要想连接到带有公钥的SSH服务器,客户端SSH软件就会向SSH服务器发出请求,请求用联机的用户密钥进行安全验证。SSH服务器收到请求之后,会先在该SSH服务器上连接的用户的家目录下寻找事先放上去的对应用户的公用密钥,然后把它和连接的SSH客户端发送过来的公用密钥进行比较。如果两个密钥一致,SSH服务器就用公钥加密"质询"(challenge)并把它发送给SSH客户端。

4、特点

私钥不能在网络中传输,私钥可以解密公钥
公钥可以在网路中传输,公钥不能解密私钥

5、优缺点

相比于对称加密技术,非对称加密技术安全性更好,但性能更慢。

三、配置密钥对

此本次实验中,我们用非对称加密算法ECDSA进行加密

ssh服务器ip:192.168.100.141
ssh客户端ip:192.168.100.150
客户端使用lisi用户与服务器端的gulf用户建立ssh连接

ssh-keygen -t ecdsa
#以普通用户lisi的身份登录,创建属于lisi的密钥对
注意:输入的是密钥对密码而并非是登录密码
在这里插入图片描述
创建好之后,在lisi的家目录下会产生.ssh目录存放密钥对
在这里插入图片描述
ssh-copy-id -i id_ecdsa.pub gulf@192.168.100.141
#将公钥推送给ssh服务器上的gulf用户
在这里插入图片描述
在这里插入图片描述
到ssh服务器端以gulf用户登录查看lisi推过来的公钥
在这里插入图片描述
ssh gulf@192.168.100.141
#客户端上用lisi远程连接到gulf用户
在这里插入图片描述

1、登录只需输入一次密码

ssh 推荐的登录方式是使用私钥登录。但是如果生成私钥的时候,设置了口令(passphrase),每次登录时需要输入口令也很麻烦。可以通过 ssh-agent 来管理私钥,把私钥加载进内存,之后便不用再输入私钥。ssh-add命令是把专用密钥添加到ssh-agent的高速缓存中

原理:用户使用 ssh-agent 来管理私钥之后。ssh-agent 会启动一个进程在内存里保存这些私钥。之后每次登录时,ssh 客户端都会跟 ssh-agent 请求是否有目标主机的私钥;如果有,ssh 客户端便能直接登录目标主机。

ssh-agent bash
#运行一个bash环境管理私钥
ssh-add
#添加lisi用户的私钥进内存
在这里插入图片描述
在这里插入图片描述
ssh-add -l
#查看已添加的私钥
在这里插入图片描述
ssh-add -d
#删除已添加的私钥
在这里插入图片描述
ssh-add -x
#锁定ssh-agent
在这里插入图片描述
在这里插入图片描述
ssh-add -X
#解锁ssh-agent
在这里插入图片描述
ssh-agent
#打印出使用的环境和变量

在这里插入图片描述
ssh-agent -k
#杀死ssh-agent,比如锁定了之后忘记了密码

在这里插入图片描述

ssh-add常用参数如下:

  • -D:删除ssh-agent中的所有密钥
  • -d:从ssh-agent中的删除密钥
  • -L:显示ssh-agent中的公钥
  • -l:显示ssh-agent中的密钥
  • -t life:对加载的密钥设置超时时间,超时ssh-agent将自动卸载密钥
  • -X:对ssh-agent进行解锁
  • -x:对ssh-agent进行加锁
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值