ssh 远程连接协议 ssh远程管理C/S架构: 配置OpenSSH服务器 使用SSH客户端程序 密钥对验证的SSH体系 TCP Wrappers 访问控制:tcp流量过来,会进行一些过滤 客户端配置文件:/etc/ssh/ssh_config telnet明文,可以抓包看到密码,还不可以压缩 ssh优点:数据传输是加密的,可以防止信息泄漏 数据传输 ssh服务端主要包括2个服务功能:ssh远程链接和sftp服务(文件传输功能) ssftp和sftp差不多,协议不一样而已 原理: 公钥是给别人,私钥是自己留着 首次链接时的公钥交换: 1、客户端发起链接请求,服务器会生成1个会话id,以及将会话id和自己的公钥交给客户端 2、客户端拿到公钥和会话id,会用自己的公钥和对给的会话id进行运算,得到一个结果,用服务端的公钥进行加密,传回给服务端 3、服务端收到这个结果,用自己的私钥解密结果,结果等于会话id加上客户端的公钥,结果减去客户端的id,得到客户端的公钥 4、最终双方都得到对方的公钥 cd .ssh/ (ssh 192.168.63.130) ls cat kown_hosts 对称加密 非对称加密 连接方式: 1、ssh ip地址 2、ssh -t ip地址 -t 最终目标ip地址 -t伪终端 cetrl+D登出 ssh 用户名(不写默认root用户)@IP地址 ssh [email protected] ssh -l zhangsan 192.168.63.130 -p 指定端口号(默认是22) 如何看端口号有没有被用:ss -natp |grep ":9528" 9528是你要看的端口号 rpm -qc openssh-server rpm -qc openssh-clients 服务监听选项: vim /etc/ssh/sshd_config 在Port 那变成Port 9528 (默认注释,并且是22) ssh 192.168.63.100 -p 9528 systemctl restart sshd 如何用主机名登录: vim /etc/hosts (搭建1个dns也行) 192.168.63.100 node2 ssh node2 ssh服务的最佳实践: 更改默认的22端口号 vim /etc/ssh/sshd_config Port 端口号 PermitRootLogin yes改成no vim /etc/pam.d/su 第六行开启 (禁止用户su) wheel组扔然可以,可以踢掉 gpasswd -d zhangsan wheel 白名单:加进来的允许通过,其他的全都不允许 黑名单: 加进来的不允许,其余的都可以 白名单安全性高 设置白名单: vim /ssh/sshd_config AllwodUsers [email protected] systemctl restart sshd 在客户端:ssh [email protected] (不允许,除非换成张三) 允许多个: vim /ssh/sshd_config AllwodUsers [email protected] lisi wangwu lisi和wangwu也可以使用了 DenyUsers 是黑名单,和白名单书写方式一样