目录
常见的远程连接工具:Xshell finalshell putty seruct MobaXterm(putty seruct不太建议使用)
生产环境更多使用的是Xshell和MobaXterm
远程管理协议
Telnet? :明文传输协议
SSH? ?:密文传输,具有加密、压缩功能
SSH相较于Telnet的优点:
- 数据传输是加密的,可以防止信息泄露
- 数据传输是压缩的,可以提高传输速度
在Linux系统中,ssh是默认开启的
首次连接时的公钥交换
- 客户端发起连接请求,服务端会生成一个会话id,以及将会话id和自己的公钥交给客户端
- 客户端拿到公钥和会话id以后,会用自己的公钥和对面给的会话id做运算得到一个结果,然后用服务器的公钥加密,传给服务端
- 服务端收到这个结果,用自己的私钥去解密结果;结果=会话id+客户端的公钥;结果-会话id=客户端的公钥。最终服务端会得到客户端的公钥?
1、概念
采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用
2、常用算法
在对称加密算法中常用的算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。
3、特点
1、加密方和解密方使用同一个密钥; 2、加密解密的速度比较快,适合数据比较长时的使用; 3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦;
4、优缺点
对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。 对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担
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服务器上连接的用户的家目录下
4、优缺点
相比于对称加密技术,非对称加密技术安全性更好,但性能更慢。
此本次实验中,我们用非对称加密算法ECDSA进行加密,为了方便用root用户,也可给其他普通用户配置
会生成一个known_hosts(公钥的集合)
可以看到是加密后的信息(可以通过确定要连接的机器和准备连接该服务端的提示信息)
假设可以通过另一台服务器伪装IP地址一样的服务端,用伪装后的服务端连接,会出现如下报错
免验证登录? 可以修改客户端的配置文件(有安全隐患)
假如公司内要更新迭代,更换新采购的新机器要去替代旧机器,可是旧机器无法打开
解决办法是删除固定IP的内容信息
如果你作为zhangsan用户去连接对面服务端的话,那么对面也要有个zhangsan用户
ssh? 用户@IP地址
选项 | 含义 |
-l | 指定用户名 |
-p | 指定端口号 |
-t | 跳板 |
ssh? -l? 用户??
ssh? -p? 端口号
ssh 可以直接远程使用命令
模拟拒绝访问,如果想要连接的虚拟机拒绝访问(做了防火墙策略)那么可以做一个跳板,连接想要连接的虚拟机
此时用客户端连接想要连接的服务端就发现连接不上了;此时我们可以做一个跳板对想连接的服务端进行连接
禁止root用户连接
可以切换到其他用户再连接root用户
不允许切换root用户可以将wheel组注释解掉
pssh需要安装
-H指定对哪些机器进行操作;-i 指定做哪些操作?
只允许91.100登录91.101的zhangsan 所有机器可以登录101的lisi
使用密码验证终归会存在着被骇客暴力破解或嗅探监听的危险,其实也可以让 ssh 服务基于密钥进行安全验证 (可无需密码验证)。
也可指定算法类型:输入ssh-keygen -t ed25519(ecdsa)?
查看远程服务端的信息
远程服务端收到一个密钥文件
不验证密码,使用免交互登录的话,输入ssh-agent? bash将ssh-agent交给bash管理
再输入ssh-add将用户私钥添加到运行中的ssh-agent中,后续的远程连接ssh,就不需要每次都输入密码并验证。一旦私钥被添加到ssh-agent中,它会暂时保存解密后的私钥方便后续使用