SSH企业案例(跳板机)day04 下
作者:互联网
ssh服务
一、SSH简介
SSH是一个安全协议,在进行数据传输时,会对数据包进行加密处理,加密后在进行数据传输。确保了数据传输安全。
ssh是一个加密的网络传输协议。相同的还有一个telnet协议(明文)
那SSH服务主要功能有哪些呢?
1.提供远程连接服务器的服务
1)linux远程连接协议: ssh服务 端口22
2)windows远程连接: RDP协议 端口3389
2.对传输的数据进行加密
#笔试题:请说明以下服务对应的端口号或者端口对应的服务
ssh 22
telnet 23
http 80
https 443
ftp 20 21
RDP 3389
mysql 3306
redis 6379
zabbix 10050 10051
elasticsearch 9200 9300
rsync 873
rpcbind 111
二、ssh和telnet
1.ssh和telnet的区别
telnet:
1.不支持root用户登录,只允许普通用户登录
2.数据传输过程是明文的
ssh:
1.支持root用户登录
2.数据传输过程中是加密的
2.使用telnet连接服务器
1.安装telnet服务
[root@web01 ~]# yum install telnet-server
2.启动
[root@web01 ~]# systemctl start telnet.socket
3.创建普通用户并设置密码
[root@web01 ~]# useradd test
[root@web01 ~]# passwd test
4.测试连接
[c:\~]$ telnet test@192.168.15.7
三、ssh相关命令
SSH有客户端与服务端,我们将这种模式称为C/S架构,ssh客户端支持Windows、Linux、Mac等平台。
在ssh客户端中包含 ssh|slogin远程登陆、scp远程拷贝、sftp文件传输、ssh-copy-id秘钥分发等应用程序
1.SSH命令
[root@web01 ~]# ssh root@172.16.1.31
#命令拆分
ssh #命令
root #连接远端服务器时使用的用户,远端服务器上真实存在的用户
#如果连接时不指定用户,则使用当前服务器的当前用户连接的远端服务器上的相同用户
@ #分割符
172.16.1.31 #远端服务器的IP地址
-p #指定ssh服务端的端口
22 #ssh的端口
-o StrictHostKeyChecking=no #首次连接不询问
ssh root@192.168.15.71 [command]
common 需要执行的命令
ssh-keygen #生成密钥证书
[root@m01 ~]# ssh-keygen
[root@m01 ~]# ll -a
total 52
drwx------ 2 root root 57 Oct 21 15:21 .ssh
[root@m01 ~]# cd .ssh/
[root@m01 .ssh]# ll
total 12
-rw------- 1 root root 1679 Oct 21 15:15 id_rsa
-rw-r--r-- 1 root root 390 Oct 21 15:15 id_rsa.pub
-rw-r--r-- 1 root root 175 Oct 21 15:21 known_hosts
会在家目录中生成一个.ssh的目录,其中包含id_rsa,id_rsa.pub文件
id_rsa 私钥(钥匙)
id_rsa.pub 公钥(锁)
SHA256:2W9jhyv6Z3Mzc1luIsDzQQd5fCqyoHjSgSKp7Cxrbms root@m01
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 ,并且会将本服务器中的公钥复制到其中,以至于实现免密登录。
[root@m01 .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.15.71
[root@m01 .ssh]# ssh root@172.16.1.71
scp
rsync
2.xshell连接不上服务器怎么办?
1.查看网络
ping 10.0.0.31
2.查网卡,网卡是否启动
3.查端口
telnet 10.0.0.31 22
4.检查sshd服务是否启动
5.防火墙
6.虚拟机的虚拟网络编辑器
7.查看windows的网卡
四、ssh的验证方式
1.基于账号密码远程登录
直接输入密码即可。
2.密钥验证
通过公钥和私钥验证
密钥:[root@m01 ~]# ssh-keygen
公钥:
[root@m01 .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.15.71
[root@m01 .ssh]# ssh root@172.16.1.71
密钥的方式比较安全
或者:
工具-新建用户密钥生成导向(下一步)——属性——公钥(复制到vim .ssh/authorized_keys)
[root@m01 ~]# vim .ssh/authorized_keys
此时就可以免密登录了
五、免密登录
免密前提:将公钥写入需要登录的服务器的~/.ssh/authorized_keys文件中
免密相关的命令 :ssh-copy-id
[root@m01 ~]# 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
此时,架构中的10台机器就可以都免密登录了
# 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
exit
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的超时时间
标签:跳板,192.168,day04,SSH,m01,服务器,root,id,ssh 来源: https://www.cnblogs.com/Haier123/p/15438871.html