OpenSSL服务

OpenSSH服务

SSH:secure shell,protocol,22/tcp,安全的远程登录,C/S
SSH协议版本:
v1:基于CRC-32做MAC,不安全:man-in-middle
v2:双方主机协议选择安全的MAC方式
基于DH算法做**交换,基于RSA或DSA算法实现身份认证
两种方式的用户登录认证:
1)基于passwd
2)基于key
客户端组件:ssh,配置文件:/etc/ssh/ssh_config
服务器组件:sshd,配置文件:/etc/ssh/sshd_config
基于**的认证实验:
Clinent host:
OpenSSL服务
Server host:
OpenSSL服务

1)在客户端生成**对儿
生成公钥命令:ssh-****** -t rsa
OpenSSL服务
在用户家目录下.ssh目录里有两个**文件
id_rsa ##这个文件为主机的私钥文件,自己保留
id_rsa.pub ##这个文件为主机公钥文件,需要对那台主机做 免密登录则把此文件发送给相应主机即可
OpenSSL服务
2)发送公钥文件有两种发送方式
基于ssh-copy-id的方式发送:
OpenSSL服务
此时在服务器端已经接收到客户端的公钥文件
OpenSSL服务
这是客户端的公钥文件,文件必须得是此文件名

基于scp的文件传输方式发送文件
OpenSSL服务
文件格式必须相同

3)测试
OpenSSL服务
scp命令:(跨主机的复制命令)
scp [option] SRC…DEST/
常用选项:
-r:递归复制
-p:保持原文件的属性信息;
-q:静默模式;
-p PORT:指明remote host的监听的端口;
例子:
上传:
scp /tmp/fstab.txt [email protected]:/tmp
下载:
scp [email protected]:/etc/fstab /tmp/

ssh服务的最佳实践:
	1、不要使用默认端口;
	2、禁止使用protocol version 1;
	3、限制可登录用户;
	4、设定空闲会话超时时长;
	5、利用防火墙设置ssh的访问策略;
	6、仅监听特定的IP地址;
	7、基于口令认证时,使用强密码策略;
		    # tr -dc A-Za-z0-9_ < /dev/urandom  | head -c 30 | xargs
	8、使用基于**的认证;
	9、禁止使用空密码;
    10、禁止root用户直接登录;
	11、限制ssh的访问频度和并发在线数;
	12、做好日志,经常分析;