SSH远程管理服务

一、SSH概述

熟悉Linux的人那肯定都对SSH不陌生。ssh是一种用于安全访问远程服务器的协议,远程管理工具。它之所以集万千宠爱为一身,就是因为它的安全性。那么它到底是怎么样来保证安全的呢?到底是如何工作的呢?

1、加密算法(了解)

☆ 对称加密算法(DES)

  1. Jack想要给Harry发送信息一个信息A,为了安全起见,Jack使用一种加密算法,比如给信息通过加一个数字B得到一个新的数字C,然后以公开的方式发送给Harry

  2. Harry接受到数字C后,通过减去一个数字B得到最终的真正的信息A

  3. Jack发送给Harry的信息A称为明文;加密后的信息C称为密文;加密用的B称之为密钥

  4. 加密算法(方法)可以很复杂,不一定是加和减,也可以是乘和除等等

  5. 以上过程中,加密和解密的秘钥是同一个密钥B

总结:

  1. 发送方使用==密钥==将==明文数据==加密成==密文==,然后发送出去

  2. 接收方收到密文后,使用==同一个密钥==将密文解密成明文进行读取

☆ 非对称加密算法(RSA)

  1. 首先Harry生成一对有相互关系的密钥对,比如e(公钥)和f(私钥);其中公钥是可以公开给所有人的,私钥必须Harry本人私自留存,不得泄露。

  2. 当Jack发送请求时,Harry会把自己的公钥e发送给Jack

  3. Jack拿着Harry的公钥e通过一种加密算法将信息A加密成密文C,以公开的方式发送给Harry

  4. Harry收到密文C后,通过自己本地留存的私钥f将密文解密成最终的信息A

  5. 以上过程中,加密使用的是公钥e,解密使用的是私钥f;使用不同的秘钥加解密

总结:

  1. 发送方使用接收方发送过来的==公钥==将==明文数据==加密成==密文==,然后发送出去

  2. 接收方收到密文后,使用自己本地留存的==私钥==将密文解密成明文进行读取

☆ 对称加密与非对称加密区别

  • ==对称加密==

    1. 使用==同一个密钥==进行加密和解密,密钥容易泄露

    2. ==加密速度快==,效率高,==数据传输==速度==快==,安全性较==低==

  • ==非对称加密==

    1. 使用==不同的密钥==(公钥和私钥)进行加密和解密

    2. ==加密速度==远远==慢==于对称加密,==数据传输==速度==慢==,安全性较==高==

2、环境准备(任务背景)

第一步:把现有的CentOS7操作系统恢复快照(刚装完系统的Linux服务器) => 母机(模板机)

第二步:对CentOS7操作系统进行克隆,生成JumpServer与RealServer(线上生产服务器)

编号IP地址主机名称角色信息
110.1.1.37(NAT) 11.1.1.10(仅主机)jumpserver.itcast.cnJumpServer
211.1.1.100(仅主机)realserver.itcast.cnRealServer

3、SSH基于用户名密码的认证原理

基本语法:

# ssh [选项] 远程服务器的用户名@远程服务器的IP地址
选项说明:
-p:指定ssh服务的端口号,默认为22

案例:通过JumpServer与RealServer远程连接,了解SSH基于用户名密码的认证原理

JumpServer:

# ssh root@10.1.1.38

认证原理:

  1. SSH客户端向SSH服务端发起一个登录请求

  2. SSH服务端将自己的公钥发送给SSH客户端

    注意:如果是第一次访问,则提示以下内容:

# ssh远程登录操作 首次
ssh 192.168.19.101
# 显示结果
# 无法确认主机的真实性
The authenticity of host '192.168.19.101 (192.168.19.101)' can't be established.
ECDSA key fingerprint is SHA256:Y/cQNWWkX15o2MsJ5HOQBI2m8S33qIA+x3zys8J4pOY.
ECDSA key fingerprint is MD5:76:61:86:8b:d5:ee:bf:9c:60:e6:12:fa:f6:f0:74:36.
Are you sure you want to continue connecting (yes/no)?yes
Warning: Permanently added '192.168.19.101' (ECDSA) to the list of known hosts.
#说明:
#当客户端输入yes确认对方的公钥指纹后,server端的公钥就会被存放到客户机的用户家目录里~/.ssh/known_hosts文件中,下次再访问就直接通过密码登录,不需要再确认公钥。
  1. SSH客户端使用服务端发过来的公钥将自己的密码加密并且发送给SSH服务端

  2. SSH服务端收到SSH客户端发过来的加密密码后使用本地留存的私钥进行解密

  3. SSH服务端将解密出来的密码和/etc/shadow文件里的用户密码对比认证

  4. SSH服务端认证成功,则返回登录成功结果,并发送一个随机会话口令给客户端,该口令用于后面两台主机进行数据传输的一个临时加密会话口令

4、SSH总结

  • SSH是Linux下远程管理的工具,相比Telnet安全,运维人员必备的神器!

  • SSH的全称Secure Shell,安全的shell,是Client/Server架构,默认==端口号为22,TCP协议==

  • SSH其实用于商业,而OpenSSH即为开源的,在Linux中默认安装

二、SSH服务搭建

1、所有服务的搭建思路

  • 关闭防火墙和selinux(实验环境都先关闭掉)

  • 配置yum源(公网源或者本地源)

  • 软件安装和检查

  • 了解并修改配置文件(核心)

  • 启动服务检查运行状态并设置开机自启动

2、搭建SSH服务器(JumpServer与RealServer)

第一步:关闭防火墙与SELinux

# systemctl stop firewalld
# systemctl disable firewalld
​
# setenforce 0
# vim /etc/selinux/config
SELINUX=disabled

第二步:配置YUM源

JumpServer配置外网YUM源 => 阿里云

# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# yum clean all
# yum makecache

RealServer配置本地YUM源 => 把光盘镜像作为仓库(自建YUM仓库)

① 挂载光盘

# mkdir /mnt/cdrom
# mount -o ro /dev/sr0 /mnt/cdrom
​
# chmod +x /etc/rc.local
# echo 'mount -o ro /dev/sr0 /mnt/cdrom' >> /etc/rc.local

② 编写local.repo文件

# cd /etc/yum.repos.d
# vim local.repo
[local]
name=local yum
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0

3、VMware中的三种网络

由上图可知:在VMware中,一共存在3种网络模式。

选择网络连接属性意义
Use bridged networking(使用桥接网络)使用(连接)VMnet0虚拟交换机,此时虚拟机相当于网络上的一台独立计算机,与主机一样,拥有一个独立的IP地址
Use network address translation(NAT)(使用NAT网络)使用(连接)VMnet8虚拟交换机,此时虚拟机可以通过主机单向访问网络上的其他工作站(包括Internet网络),其他工作站不能访问虚拟机
Use Host-Only networking(仅主机网络)使用(连接)VMnet1虚拟交换机,此时虚拟机只能与虚拟机、主机互连,与网络上的其他工作站不能访问

VMnet0 桥接模式 : 和物理真机连接在同一交换机,相当于系统与Windows处于同一个网段

① 与物理真机同网段,如192.168.43.X

② 桥接模式可以连接外网(有网络)

桥接模式中,Linux系统就相当于一台独立的计算机,与Windows物理真机处于同一个网络环境中。

VMnet1 仅主机模式:封闭的网络环境,仅能与Windows物理真机进行连接。无法连接外网

① 与物理真机不在同一个网段,拥有独立的IP网段

② 仅主机模式仅能用于内部连通(VMware=>JumpServer、RealServer)

③ 仅主机模式无法连接外网

VMnet8 NAT模式:相当于一个独立的网络环境,与物理真机不处于同一个网段。但是其可以通过虚拟网络路由器(NAT地址转化)连接外网。

① 与物理真机不在同一个网段,拥有独立的IP网段

② 不仅可以进行内部连接(VMware=> CentOS6、CentOS7)

③ 拥有一个虚拟的路由器(NAT设备)可以让我们虚拟机连接到外网环境

4、静态IP配置

☆ JumpServer网卡配置

给JumpServer配置两张网卡(NAT模式 + 仅主机模式)

添加仅主机模式网卡:

重启network网络,然后使用ifconfig获取仅主机模式的网卡信息。

# systemctl restart network
# ifconfig

由上图可知,仅主机模式的网卡为ens37,NAT模式网卡为ens33。遇到一个问题,ens37这张网卡没有配置文件:

# cd /etc/sysconfig/network-scripts/
# ls

添加ens37配置文件:

# cp ifcfg-ens33 ifcfg-ens37
# vim ifcfg-ens37
TYPE="Ethernet"
BOOTPROTO="none"
IPADDR=11.1.1.10
NETMASK=255.255.255.0
NAME="ens37"
DEVICE="ens37"
ONBOOT="yes"

重启计算机网络:

# systemctl restart network

☆ 关闭NetworkManager

Linux图形化界面中的网络管理器,有些时候我们设置了静态IP。但是重启网络后,其并没有生效或者和你设置的IP地址不一致,很可能是由于NetworkManager工具的影响。

# systemctl stop NetworkManager
# systemctl disable NetworkManager

☆ RealServer网卡配置

把NAT模式的网卡更改为仅主机模式,然后设置一个静态IP地址。

由于现在只有一张网卡,所以仅主机模式对应的网卡为ens33,配置:

# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
BOOTPROTO="none"
IPADDR=11.1.1.100
NETMASK=255.255.255.0
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"

设置完成后,重启计算机网络

# systemctl stop NetworkManager
# systemctl disable NetworkManager
​
# systemctl restart network

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/161270.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最新Ai系统ChatGPT程序源码+以图生图+Dall-E2绘画+支持GPT4+Midjourney绘画

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

openpnp - 74路西门子飞达控制板(主控板STM32_NUCLEO-144)实现

文章目录 openpnp - 74路西门子飞达控制板(主控板STM32_NUCLEO-144)实现概述飞达控制底板硬件电路程序的修改END openpnp - 74路西门子飞达控制板(主控板STM32_NUCLEO-144)实现 概述 现在调试自己的openpnp设备, 在收尾, 将飞达控制板弄好, 能正常控制设备飞达安装平台上装满…

go-sync-mutex

Sync ​ Go 语言作为一个原生支持用户态进程(Goroutine)的语言,当提到并发编程、多线程编程时,往往都离不开锁这一概念。锁是一种并发编程中的同步原语(Synchronization Primitives),它能保证多…

ELK + kafka 日志方案

概述 本文介绍使用ELK(elasticsearch、logstash、kibana)  kafka来搭建一个日志系统。主要演示使用spring aop进行日志收集,然后通过kafka将日志发送给logstash,logstash再将日志写入elasticsearch,这样elasticsearc…

【Linux】Nignx及负载均衡动静分离

一、Nginx简介 1.1 什么是nginx? Nginx(发音同"engine x")是一个高性能的反向代理和 Web 服务器软件,最初是由俄罗斯人 Igor Sysoev 开发的。Nginx 的第一个版本发布于 2004 年,其源代码基于双条款 BSD 许可证发布&am…

JavaScript_Date对象_实例方法_set类

设置一年后的今天&#xff1a; <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>Document</…

Asterisk Ubuntu 安装

更新环境 sudo apt update sudo apt install wget build-essential git autoconf subversion pkg-config libtool sudo contrib/scripts/get_mp3_source.sh A addons/mp3 A addons/mp3/common.c A addons/mp3/huffman.h A addons/mp3/tabinit.c A addons/mp3/Ma…

MySQL连接时出现Host ‘::1‘ is not allowed to connect to this MySQL server

报错原因 之前想着要提高一下连接速度&#xff0c;所以在my.ini中加入了&#xff1a;skip-name-resolve&#xff0c;当时的数据库root账号设置的登录权限是%&#xff0c;因此没有出现连接错误&#xff0c;这次因为是新建数据库&#xff0c;root账号的登录权限默认是localhost&…

非线性【SVM】的创建和使用

先来绘制散点图&#xff1a; from sklearn.datasets import make_circles X,y make_circles(100, factor0.1, noise.1) # 100个样本&#xff0c;factor:内圈和外圈的距离之比&#xff0c;noise:噪声 X.shape y.shape plt.scatter(X[:,0],X[:,1],cy,s50,cmap"rainbow&qu…

在IDEA运行spark程序(搭建Spark开发环境)

建议大家写在Linux上搭建好Hadoop的完全分布式集群环境和Spark集群环境&#xff0c;以下在IDEA中搭建的环境仅仅是在window系统上进行spark程序的开发学习&#xff0c;在window系统上可以不用安装hadoop和spark&#xff0c;spark程序可以通过pom.xml的文件配置&#xff0c;添加…

【C/C++笔试练习】new和deleted底层原理、静态数据成员、运算符重载、只能使用new创建的类、模版声明、另类加法、走方格的方案数

文章目录 C/C笔试练习选择部分&#xff08;1&#xff09;new和deleted底层原理&#xff08;2&#xff09;静态数据成员&#xff08;3&#xff09;运算符重载&#xff08;4&#xff09;程序分析&#xff08;5&#xff09;静态数据成员&#xff08;6&#xff09;只能使用new创建的…

基于java+springboot+vue城市轨道交通线路查询系统-公交车线路查询

项目介绍 本系统是针对目前交通管理的实际需求&#xff0c;从实际工作出发&#xff0c;对过去的市轨道交通线路查询系统存在的问题进行分析&#xff0c;完善用户的使用体会。采用计算机系统来管理信息&#xff0c;取代人工管理模式&#xff0c;查询便利&#xff0c;信息准确率…