微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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 [email protected]

 

image-20211021144820417

 

三、ssh相关命令

 

SSH有客户端与服务端,我们将这种模式称为C/S架构,ssh客户端支持Windows、Linux、Mac等平台。
在ssh客户端中包含 ssh|slogin远程登陆、scp远程拷贝、sftp文件传输、ssh-copy-id秘钥分发等应用程序

 

1.SSH命令

 

[root@web01 ~]# ssh [email protected]

#命令拆分
ssh             #命令
root            #连接远端服务器时使用的用户,远端服务器上真实存在的用户
               #如果连接时不指定用户,则使用当前服务器的当前用户连接的远端服务器上的相同用户
@               #分割符
172.16.1.31      #远端服务器的IP地址
-p              #指定ssh服务端的端口
22              #ssh的端口
-o StrictHostKeyChecking=no     #首次连接不询问

ssh [email protected] [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 公钥(锁)

 

image-20211021151352506

 

SHA256:2W9jhyv6Z3Mzc1luIsDzQQd5fCqyoHjSgSKp7Cxrbms root@m01

 

ssh-copy-id -i ~/.ssh/id_rsa.pub  [email protected]

ssh-copy-id 将公钥复制到指定服务器中命令(可以免密登录

-i 指定公钥
root 用户
@ 分隔符,没事特殊意义
192.168.15.71 IP

结果:会在指定的服务器中创建~/.ssh/authorized_keys ,并且会将本服务器中的公钥复制到其中,以至于实现免密登录
[root@m01 .ssh]# ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
[root@m01 .ssh]# ssh [email protected]

 

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 [email protected]
[root@m01 .ssh]# ssh [email protected]
密钥的方式比较安全
或者:
工具-新建用户密钥生成导向(下一步)——属性——公钥(复制到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 [email protected].$i; done
此时,架构中的10台机器就可以都免密登录

 

image-20211021222217181

 

 

 

 

 

# 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 [email protected].$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的超时时间

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐