ssh为secure shell的缩写,ssh为建立在应用层基础上的安全协议。在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输。确保了数据传输安全.
主要功能是:
1.提供远程连接功能
2.提供安全加密服务
ssh --> 连接服务器
ssh root@10.0.0.1 -->连接10.0.0.1服务器,使用root用户
ssh 10.0.0.1 -->连接10.0.0.1服务器,使用的用户取决于当前登录系统的用户
-p
ssh root@10.0.0.1 -p 22 指定连接对端服务器的端口
-r 参数
-P 端口
-l 限速 #限速为8096kb,换算为MB,要除以 8096/8=1024KB=1MB
[root@backup ~]# scp -r -P2222 etc.tar.gz root@172.16.1.31:/tmp/
1.通常用来拷贝配置文件
2.大文件方式
1.先打包,在推送
2.rsync方式
限速非常的重要
1.密码复杂容易忘
2.密码简单不安全
锁(公钥) 钥匙(私钥)
我们现在完成不需要输入密码登录。
实验环境:准备两台虚拟机一台管理(manager)m10.0.0.61和backup10.0.0.41服务器
我们没有设置前ssh是需要输入密码登录的。ssh root@172.16.1.41
[root@manager ~]# ssh-keygen 【 -C(指定邮箱) 552408925@qq.com】
查看生产的秘钥对文件
[root@manager ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.31
#将61服务器的root用户的公钥推送给31服务器的root用户
[root@manager ~]# ssh ‘root@172.16.1.41’
Last login: Mon Dec 2 11:03:45 2019 from m01
[root@backup ~]#
塞key 。老师 公钥 -----> 学生 公司的服务器上
你想登录哪台服务器:
1.要知道那台服务器的密码
2.将你的公钥放置对应服务器的对应目录下即可
实验环境:
[root@m01 ~]# cat ~/.ssh/id_rsa.pub 查看老师m的公钥
[root@iZ8vbeeelmyzkhyl14sb80Z ~]# vim ~/.ssh/authorized_keys
SSH远程连接功能安全优化?
SSH作为远程连接服务,通常我们需要考虑到该服务的安全,所以需要对该服务进行安全方面的配置。
1.不使用公网IP地址
2.禁止ROOT管理员直接登录 -->
3.更改远程连接登陆的端口 --> 6666 3344 44555 52179
4.密码认证方式改为密钥认证 -->
5.使用防火墙限制来源IP地址
SSH服务登录防护需进行如下配置调整,先对如下参数进行了解
vim /etc/ssh/sshd_config Port 6666 # 变更SSH服务远程连接端口 PermitRootLogin no # 禁止root用户直接远程登录 PasswordAuthentication no # 禁止使用密码直接远程登录 UseDNS no # 禁止ssh进行dns反向解析,影响ssh连接效率参数 GSSAPIAuthentication no # 禁止GSS认证,减少连接时产生的延迟 将如下具体配置添加至/etc/ssh/sshd_config文件中,参数需根据实际情况进行调整 ###SSH### #Port 6666 #PasswordAuthentication no #PermitRootLogin no GSSAPIAuthentication no UseDNS no ###END###fail2ban可以监控系统日志,并且根据一定规则匹配异常IP后使用Firewalld将其屏蔽,尤其是针对一些爆破/扫描(nmap)等非常有效。