一,非对称加密方式原理
1,传送方将数据用hash算法得到报文摘要,用自己的私钥加密,得到数字签名。
2,传送方用接收方的公钥将明文和数字签名进行加密,然后发送给接收方。
3,接收方收到加密报文,用自己的私钥解密得到数据和数字签名。
4,接收方用传送方的公钥解密数字签名,得到报文摘要,再用公开的hash算法算出保报文的摘要,与传送方的对比,若果相同,证明真实,否则被篡改。
二,openssh使用的就是非对称加密的方式,来进行远程控制。
ssh的密码验证过程
1,首先,客户端第一次连接,服务端将公钥发给客户端,存放在 ~/.ssh/known_hosts 文件中。
2,客户端随机生成一个字符串,用服务器的公钥加密,传送给服务端。
3,服务端用自己的私钥解密,得到客户端的字符串,然后再次发送给客户端,验证服务器端的真假。
4,客户端通过用户和密码来验证自己的合法性。
ssh的公私钥对验证步骤:
1,客户端使用ssh-genkey 生成一对公私钥。分别是~/.ssh/id_rsa (私钥) ~/.ssh/id_rsa.pub(公钥) 。
2,使用 ssh-copy-id root@172.16.1.1 将自己的公钥传送到服务器的 ~/.ssh/authorized_keys文件中,该文件在使用该命令的时候自动在服务端生成。
文件中存放的是各个客户端的公钥的集合。
三,openssh的配置文件
1,客户端配置文件 /etc/ssh/ssh_config 基本上不用配置参数。
2,服务端配置文件 /etc/ssh/sshd_config
a,将permitrootlogin字段改为no,则可以限制管理员使用ssh远程,可以提高安全性。
b,port字段可以改变sshd的侦听端口。
3,客户端命令在 /usr/bin/ssh 服务端命令在 /usr/sbin/sshd
4,windows的ssh远程管理软件有 securecrt 和 winscp.
5,在windows系统中使用securecrt时,在服务器中安装一个lrzsz的rpm包,可以直接将文件从windows中拖入到终端上传到服务器中。
四,网络层防护顺序
1,iptables 的可以阻止所有的传输层的端口。
2,tcp wrapper 可以在配置文件/etc/hosts.allow 和/etc/hosts.denay文件中限制服务端口。
两个文件中的格式为:
server_name:ip_address