04下 架构——SSH服务+SSH企业案例(跳板机)
SSH是一个加密的网络传输协议。相同的有一个telnet协议(明文)。
SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输。确保了数据传输安全。那SSH服务主要功能有哪些呢?
1.提供远程连接服务器的服务
1)linux远程连接协议: ssh服务 端口22
2)windows远程连接: RDP协议 端口3389
2.对传输的数据进行加密
1、telnet和ssh之间区别
telnet是明文,而ssh是密文。
2、安装telnet服务
注意:telnet服务不支持root用户登录
准备服务器:
主机 | ip |
---|---|
m01 | 192.168.15.71 |
1、创建一个普通用户
useradd test
2 设置密码
passwd test
3、安装telnet服务
yum install telnet telnet-server -y
4、安装网络工具
yum install net-tools -y
5、开启telnet服务
systemctl start telnet.socket
下载鲨鱼鳍wireshark抓包工具,telnet密码是明文的,相同的密码都是不同的传输,证明了ssh更安全。
3 ssh相关命令
3.1
ssh root@192.168.15.71 [command]
ssh 连接的命令
root 连接的用户
@ 分隔符,没有特殊意义
192.168.15.71 连接IP
command 需要执行的命令
3.2 生成密钥证书:ssh-keygen
会在家目录中生成一个.ssh的目录,其中包含id_rsa,id_rsa.pub文件
id_rsa 私钥(私钥)
id_rsa.pub 公钥(锁)
3.3 ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.15.71
ssh-copy-id 将公钥复制到指定服务器中命令(可以免密登录)
-i 指定公钥
root 用户
@ 分隔符,没事特殊意义
192.168.15.71 IP
结果:会在指定的服务器中创建~/.ssh/authorized_keys ,并且会将本服务器中的公钥复制到其中,以至于实现免密登录。
4、SSH的验证方式
1、密码验证
直接输入密码即可
2、密钥验证
通过公钥和私钥验证的。
密钥的方式比较安全
5、xshell 生成公钥
然后下一步,下一步
编辑/root/.ssh/authorized_keys
把复制的内容放进去
私钥可能保存到Windows里了
然后测试连接:
# SSH企业案例——跳板机
1、 准备服务器
主机 | ip | 身份 |
---|---|---|
lb01 | 192.168.15.5 | 负载均衡 |
lb02 | 192.168.15.6 | 负载均衡 |
web01 | 192.168.15.7 | web服务器 |
web02 | 192.168.15.8 | web服务器 |
web03 | 192.168.15.9 | web服务器 |
nfs | 192.168.15.31 | 文件存储 |
rsync | 192.168.15.41 | 备份服务器 |
db01 | 192.168.15.51 | 数据库 |
promethues | 192.168.15.61 | 监控 |
m01 | 192.168.15.71 | 跳板机 |
2 、将跳板机免密登录所有的机器
for i in 5 6 7 8 9 31 41 51 61 71;do ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.$i; done
3、登录脚本
1、一进来就立即让选择登录的服务器: cd /etc/profile.d
2、可以多次选择需要登录的服务器
3、超管可以通过用户名密码的方式,重新进入跳板机系统
4、解决登录不存在的IP
vi /root/login.sh
#!/bin/bash
while true
do
echo "5--->lb01"
echo "6--->lb02"
echo "7--->web01"
echo "8--->web02"
echo "9--->web03"
echo "31-->nfs"
echo "41-->rsync"
echo "51-->db01"
echo "61-->promethues"
echo "71-->m01"
read -p "请输入要登录的服务器:" IP
if [[ $IP = "root" ]];then
read -p "请输入管理员密码:" PASSWORD
if [[ $PASSWORD = "dzg" ]];then
break
fi
fi
ping -c 1 -t 1 172.16.1.$IP &>/dev/null
if [ $? -ne 0 ];then
echo "你输入的ip有误"
continue
fi
ssh 172.16.1.$IP
done
加可执行权限:
chmod +x /root/login.sh
把login.sh移到/etc/profile.d可实现一进来就立即让选择登录的服务器
mv /root/login.sh /etc/profile.d/
知识储备:
1、shell脚本命令行交互输入内容的命令是read [-p]
2、ping命令参数
-c : 指定ping的次数
-t : 指定每次ping的超时时间