Day 22 SSH远程管理服务

news2024/11/18 13:45:08

sshd服务,系统自带,默认开机自启运行

云/物理服务器的安全组和防火墙默认放行该端口

软件包:openssh-server(服务端);openssh-client(客户端);

格式:ssh IP地址/域名 [参数]

[参数]:

-p 端口号:ssh指定端口登录,一般用于登录修改过端口号的服务器

-i 密钥文件路径:使用指定密钥文件登录

-X:打开对方服务器下带有图形化界面的应用,X11

ssh服务配置文件

服务端配置文件

/etc/ssh/sshd_config

配置文件部分参数解释:

Port 22    //指定允许登录端口22

PermitRootLogin yes    //允许root用户登录

SyslogFacility AUTHPRIV    //将sshd的相关日志储存在 AUTHPRIV 日志对象中

LoginGraceTime 2m    //客户端将有2分钟的时间来完成身份验证,超时将断开连接

MaxAuthTries 6    //每个客户端最多6次机会进行身份验证,超过3次(半数)验证失败将被系统日志记录,超过6次连接将被拒绝

MaxSessions 10    //允许单个客户端建立最多10个会话

AuthorizedKeysFile .ssh/authorized_keys    //指定ssh服务的公钥验证文件authorized_keys(锁)的的位置在每个用户的家目录下的 .ssh 目录中

可以将位置指向同一个目录方便管理例如:AuthorizedKeysFile /etc/ssh/authorized_keys/%u

%u为占位符,实际过程中会被替换为以当前用户名命名的文件夹

PubkeyAuthentication yes    //允许使用密钥验证登录

PasswordAuthentication yes    //允许使用密码验证登录

X11Forwarding yes    //允许X11(图形界面)转发

客户端配置文件

/etc/ssh/ssh_config

Port 22    //指定登陆端口

ForwardX11Trusted yes    //信任服务端通过ssh连接转发过来的X11(图形界面)连接

实例:修改ssh端口

①修改ssh服务端配置文件:vim /etc/ssh/sshd_config

②修改 Port 端口号,保存退出,重启服务,客户端无法登录

此时,客户端想要通过ssh登录服务端的方法:

①通过 [参数] -p来指定端口进行登录

②修改ssh客户端:vim /etc/ssh/ssh_config,将端口号修改为和服务端一致

ssh密钥登录

密钥文件目录(隐藏):/root/.ssh/

root为当前的登录用户,所以密钥目录在当前用户家目录 /root/ 下

生成ssh密钥:ssh -keygen

一直Enter,会在 /root/.ssh/ 目录下生成一对密钥文件:id_rsa.pub 和 id_rsa

公钥:id_rsa.pub

私钥:id_rsa

密钥原理

同一台服务器上的公钥文件 id_rsa.pub 和私钥文件 id_rsa 像是一对配套的锁和钥匙,公钥是锁,私钥是钥匙

但是只有把公钥文件的内容写入验证文件 authorized_keys 中时才能发挥锁的作用

把验证文件(锁)下在谁身上,就可以用对应的私钥文件(钥匙)开谁

实例:免密登录

使用A免密登录B

①A生成密钥:ssh-keygen,密钥文件在 /root/.ssh/ 目录下

A生成配套的A锁(id_rsa.pub)和A钥匙(id_rsa),但此时A锁还不能起作用

②A想免密登录B,则A将自己公钥文件 id_rsa.pub 内容写进B的验证文件 authorized_keys 中

ssh-copy-id 192.168.98.137    //B的IP,过程需要输入B的密码

此时 A锁(id_rsa.pub)在 B的验证文件(authorized_keys)中开始发挥作用,相当于给B下了一个A锁(authorized_keys)

③验证使用A免密登录B

实际上,是用 A钥匙(id_rsa)去开 A锁(authorized_keys )

实例:使用远程登录工具登录

①A生成密钥:ssh-keygen,密钥文件在 /root/.ssh/ 目录下

A生成配套的A锁(id_rsa.pub)和A钥匙(id_rsa),但此时A锁还不能起作用

②A将自己公钥文件 id_rsa.pub 内容写进A自己的验证文件 authorized_keys 中

cd /root/.ssh/

cat id_rsa.pub > authorized_keys

此时 A锁(id_rsa.pub)在 A的验证文件(authorized_keys)中开始发挥作用,相当于给A自己下了一个A锁(authorized_keys)

③将A的私钥文件 id_rsa 下载至本地,并远程工具使用该密钥登录A

实际上就是远程登录工具拿A钥匙(id_rsa)开A给自己下的A锁(authorized_keys)

实例:ssh指定密钥登录

A使用密钥登录B

①B生成密钥:ssh-keygen,密钥文件在 /root/.ssh/ 目录下

B生成配套的B锁(id_rsa.pub)和B钥匙(id_rsa),但此时B锁还不能起作用

②B将自己公钥文件 id_rsa.pub 内容写进B自己的验证文件 authorized_keys 中

cd /root/.ssh/

cat id_rsa.pub > authorized_keys

此时 B锁(id_rsa.pub)在 B的验证文件(authorized_keys)中开始发挥作用,相当于给B自己下了一个B锁(authorized_keys)

③A获取B的私钥文件id_rsa,并使用该密钥登录B

scp 192.168.98.137:/root/.ssh/id_rsa /root/  //192.168.98.137为B的IP

ssh 192.168.98.137 -i id_rsa

实际上是给A一把B钥匙(id_rsa)

A拿着B钥匙(id_rsa)去开B下在自己身上的B锁(authorized_keys)

同样的道理,使用C生成一对密钥对,把C的公钥文件内容放进B的验证文件中,然后把C的私钥文件拷贝给A,A是可以拿着C的私钥文件登录B的。

scp远程拷贝

把文件拷贝到其他服务器:scp 本地文件名 目标IP:目标存放路径

从其他服务器拷贝文件:scp 目标IP:目标文件名 本地存放路径

注意:

-r:远程拷贝目录

如果服务器之间做了免密登录,那么远程拷贝不需要密码

企业案例一

ssh远程连接服务器出现以下报错:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
7e:b5:1d:3b:1c:81:d2:6b:d2:96:f7:1a:1f:e8:16:27.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:2
RSA host key for 172.16.50.240 has changed and you have requested strict checking.
Host key verification failed.

问题:指纹不匹配

解决方法:rm ~/.ssh/known_hosts //删除当前家目录已建立过连接主机的密钥

企业案例二

在阿里云北京4区可用区二有50台服务器,这50台服务器使用同一个私有网络(10.0.0.0/24),只有一台服务器有公网IP,剩下的49台怎么连接?

50台服务器的内网IP为:10.0.0.10 - 10.0.0.60

50台服务器采用内网可以互相访问

A:私网:10.0.0.10  公网:1.98.42.123

先用远程工具连A,A采用密钥去连接在同一个内网中能够使用内网互相访问的服务器

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++语法练习】计算梯形的面积

题目链接:https://www.starrycoding.com/problem/158 题目描述 已知一个梯形的上底 a a a,下底 b b b和高 h h h,请求出它的面积(结果保留两位小数)。 输入格式 第一行一个整数 T T T表示测试用例个数。 ( 1 ≤ T …

JeeSite主子表

classroom表代码生成配置(主表) student表代码生成配置(子表) 设置“班级”菜单 班级列表页面 点击“三年级二班”,显示班级中的学生列表页面 班级表 CREATE TABLE classroom (classroom_id int NOT NULL AUTO_…

Meditron:基于 Llama 完全开源的医学大语言模型

健康危机就在眼前,当医疗资源有限时,每一秒钟都至关重要!Meditron 就像一位忠实的医疗助手,提供基于证据的护理建议和情境意识的推荐,帮助医疗工作者在诊断和治疗过程中做出更准确的决策。 在资源有限的医疗环境中&am…

C/C++实现高性能并行计算——1.pthreads并行编程(中)

系列文章目录 pthreads并行编程(上)pthreads并行编程(中)pthreads并行编程(下)使用OpenMP进行共享内存编程 文章目录 系列文章目录前言一、临界区1.1 pi值估计的例子1.2 找到问题竞争条件临界区 二、忙等待三、互斥量3.1 定义和初始化互斥锁3.2 销毁。3.3 获得临界区的访问权&…

《读懂财务报表》手绘版读书笔记:通过报表找好公司

通过财报的三张表判断好公司: 然后是在三表中,计算各个项目占总体的比例,以及做比率分析, 比率分析,从偿还能力,运营能力,盈利能力三方面分析: 1) 偿还能力 2&#xff09…

新建stm32工程模板步骤

1.先使用keil新建一个project的基本代码 2.stm32启动文件添加 将stm32的启动文件,在原工程当中新建一个Start文件夹把相关的启动文件放到文件夹当中 然后还需要找到下面三个文件 stm32f10x.h是stm32的外设寄存器的声明和定义,后面那两个文件用于配置系…

Python数据预处理1:导入与基本操作

2024/4/30 After installing the xlrd package, you should be able to read Excel files using pandas without any issues. #需要在pyCharm命令行中下载两个包 pip install pandas pip install xlrd .xls数据导入 #数据的导入 import pandas as pd #导入EXCEL表格数据 df…

Java基于微信小程序+uniapp的校园失物招领小程序(V3.0)

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

【大数据】利用 Apache Ranger 管理 Amazon EMR 中的数据权限

利用 Apache Ranger 管理 Amazon EMR 中的数据权限 1.需求背景简介2.系统方案架构图3.主要服务和组件简介3.1 Amazon EMR3.2 Simple Active Directory3.3 Apache Ranger 4.部署步骤4.1 部署 Simple AD 服务4.2 部署 Apache Ranger4.3 部署 Amazon EMR4.4 在 Amazon EMR 的主节点…

FPGA高端项目:FPGA帧差算法多目标图像识别+目标跟踪,提供11套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐FPGA帧差算法单个目标图像识别目标跟踪 3、详细设计方案设计原理框图运动目标检测原理OV5640摄像头配置与采集OV7725摄像头配置与采集RGB视频流转AXI4-StreamVDMA图像缓存多目标帧差算法图像识别目标跟踪模块视频输出Xilinx系列FPGA工程源…

spring-boot示例

spring-boot版本:2.0.3.RELEASE 数据库: H2数据库 (嵌入式内存性数据库,安装简单,方便用于开发、测试,不适合用于生产) mybatis-plus框架,非常迅速开发CRUD

Liunx磁盘管理(上)

Liunx磁盘管理(中)-CSDN博客 目录 一.硬盘类型 机械硬盘(HDD) 固态硬盘(SSD) 二.插拔方式 1. 热插拔(Hot Swapping) 2. 冷插拔(Cold Swapping) 3. 模块…

新唐的nuc980/nuc972的开发3-官方源码编译

上一节中bsp已经安装,交叉环境已经搭建,理应就可以正常的编写上层的应用程序啦。 但是系统启动次序是- uboot-> kernel内核 ->挂载文件系统 ->上层应用程序 下面是bsp安装后的文件: 因此本章节,将讲解 uboot-> kerne…

MySql-日期分组

一、分别统计各时间各类型数据条数 数据库的 request_time字段 数据类型:timestamp 默认值:CURRENT_TIMESTAMP 例子: 2024-01-26 08:25:48 原数据: 1、将数据按照日期(年月日)形式输出 按照request_…

C语言:文件操作(下)

片头 嗨!小伙伴们,在前2篇中,我们分别讲述了C语言:文件操作(上)和 C语言:文件操作(中),今天我们将会学习文件操作(下),准…

电商技术揭秘四十一:电商平台的营销系统浅析

相关系列文章 电商技术揭秘相关系列文章合集(1) 电商技术揭秘相关系列文章合集(2) 电商技术揭秘相关系列文章合集(3) 文章目录 引言一、用户画像与精准营销用户画像与精准营销的概念用户画像在精准营销中…

基于FPGA的数字信号处理(7)--如何确定Verilog表达式的位宽

一般规则 很多时候,Verilog中表达式的位宽都是被隐式确定的,即使你自己设计了位宽,它也是根据规则先确定位宽后,再扩展到你的设计位宽,这常常会导致结果产生意想不到的错误。比如: timescale 1ns/1ns mod…

Docker命令(持续更新)

目录 下载和安装 安装必要的依赖项 添加Docker仓库 安装Docker Engine 启动Docker服务 配置阿里云镜像 卸载Docker 镜像 删除指定id镜像 删除所有镜像 镜像保存本地 本地镜像加载到docker服务器内 容器 创建容器 查看所有容器 停止所有容器 启动已存在容器 删…

从键入网址到网页显示,期间发生了什么?

从键入网址到网页显示,期间发生了什么? 孤单小弟【HTTP】真实地址查询【DNS】指南帮手【协议栈】可靠传输【TCP】远程定位【IP】两点传输【MAC】出口【网卡】送别者【交换机】出境大门【路由器】互相扒皮【服务器与客户端】相关问答 不少小伙伴在面试过程…

【千帆平台】AppBuilder工作流编排新功能体验之创建自定义组件

欢迎来到《小5讲堂》 这是《千帆平台》系列文章,每篇文章将以博主理解的角度展开讲解。 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 前言工作流编排组件 创建组件组件界面组件信息 组件画布操作节点…