SSH
1、什么是SSH
(1)SSH仅仅是一种协议标准,目的是实现安全远程登录及安全网络服务。
2、实现SSH的工具有哪些
(1)开源OpenSSH,使用最广泛。
(2)Dropbear,轻量级SSH。
3、SSH可以实现的功能场景
(1)安全远程登录
(2)安全的端口转发
①本地端口转发
②远程端口转发
③动态端口转发(SOCKES代理)
4、背景知识
(1)对称加密
加密解密使用同一份密钥
安全特性:攻击者获得公钥后即可解密。
(2)非对称加密
使用公钥加密的数据只能使用私钥进行解密
客户端拿到服务端公钥,使用该公钥对数据进行加密,将加密后的数据发送给服务端,服务端使用私钥进行解密。
安全特性:公钥及加密后的数据泄漏,攻击者无法解密。如果攻击者拦截了客户端的请求,发送攻击者的公钥给客户端,攻击者可使用自己的私钥进行解密。
(3)基于口令的认证
在非对称加密基础上添加对服务端IP的提示,Client自己对公钥进行确认,确认通过后再输入密码认证。
安全特性:规避非对称加密会话被拦截的情况,
(4)基于公钥的认证
客户端、服务端均存在公钥,先手动把客户端的公钥添加到服务端中。
客户端发起认证后,服务端根据客户端的公钥加密生成的随机数
客户端得到加密后的数据进行解密,然后跟SessionKey生成摘要1
服务端使用随机数跟SessionKey生成摘要2,并与摘要1 比对,成功则认证成功
5、SSH端口
默认监听22端口
6、SSH测试方法
Dropbear
1、什么是Dropbear
(1)Dropbear是一个轻量级SSH客户端和服务端
2、Drop Bear交叉编译方法
(1)编译过程
①./configure --prefix=$PWD/dropbear-2020.81/build/98525(生成文件目录) --host=arm CC=arm-ca9-linux-gnueabihf-gcc
‘ ②make && make install
(2)编译过程遇到的问题
①部分编译链缺少zlib
1)./configure 后添加–disable-zlib,会造成文件无法传输
(3)移植过程中缺少的动态库
①编译链 arm-ca9-linux-gnueabihf-6.5
1)libcrypt.so.1、libutil.so.1、libz.so.1
解决方法:由驱动放进/lib目录下。
3、编译后生成的文件
|-- bin(客户端)
| |-- dbclient(SSH2 客户端)
| |-- dropbearconvert(转换openSSH密钥的工具)
| -- dropbearkey(密钥生成器) |-- sbin(服务端) |
– dropbear
4、使用方法
(1)开启安全远程登录
①服务端生成密钥
./dropbearkey -t rsa -f /mnt/cfg/nfsdir/dropbear/rsa_key
②启动服务,默认端口22
./dropbear -r /mnt/cfg/nfsdir/dropbear/rsa_key
③客户端使用命令登录
ssh root@192.168.1.7
(2)使用dbclient远程登录
./dbclient root@192.168.1.7
(3)使用dbclient端口转发实现登录内网主机
①假设条件:内网Host 1通过SSH Client,可访问公网Host 2 SSH Service,不能返乡访问(远程端口转发)
②Host 1执行:
(4)常见问题
①登录时提示“服务器拒绝了密码”
在服务端修改root密码后重新登录。命令:passwd root