Linux远程访问及控制SSH命令

news2024/12/25 16:50:47

目录

  • 一. SSH服务
    • 1.1 SSH基础
      • 1.1.1什么是SSH服务器?
      • 1.1.2SSH优点
      • 1.1.3常见的ssh协议
  • 二. 服务端配置文件常用选项
    • 2.1设置白名单
    • 2.2设置黑名单
  • 三. SSH服务的两种验证方式
    • 3.1 公钥与私钥的关系
  • 四. ssh客户端程序
    • 4.1ssh远程登录
    • 4.2 scp 远程复制
    • 4.3 sftp 安全的ftp
  • 五. 配置密钥对验证
    • 5.1免交互验证:
    • 5.2 在已有的密钥密码验证下实现免交互
  • 六. TCP Wrappers 访问控制 (TCP封套)
    • 6.1 TCP Wrappers保护机制的两种实现方式
    • 6.2 TCP Wrappers 访问策略
    • 6.3 基本原则

一. SSH服务

1.1 SSH基础

1.1.1什么是SSH服务器?

SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能;

SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令;

SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。

SSH客户端<--------------网络---------------->SSH服务端

1.1.2SSH优点

数据传输是加密的,可以防止信息泄漏

数据传输是压缩的,可以提高传输速度

1.1.3常见的ssh协议

客户端: Linux Client: ssh, scp, sftp,slogin Windows Client:xshell, MobaXterm,putty, securecrt, sshsecureshellclient
OpenSSH 是实现SSH协议的开源软件项目,适用于各种UNIX、 Linux 操作系统。
Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动。
执行"systemctl start sshd"命令即可启动sshd 服务
sshd 服务默认使用的是TCP的22端口,安全协议版本sshv2,出来2之外还有1(有漏洞)
sshd服务的默认配置文件是/etc/ssh/ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于前者是针对客户端的配置文件,后者则是针对服务端的配置文件

服务名称 : sshd
服务端主程序: /usr/sbin/sshd
服务端配置文件 : /etc/ssh/sshd_config
客户端配置文件: /etc/ssh/ssh_config

二. 服务端配置文件常用选项

在这里插入图片描述在这里插入图片描述

2.1设置白名单

AllowUsers zhangsan lisi@192.168.137.101 仅允许zhangsan,lisi在此用户上登录,且lisi只能在此主机下远程登录

在这里插入图片描述在这里插入图片描述

2.2设置黑名单

DenyUsers zhangsan lisi@192.168.137.101禁止zhangsan和lisi在此主机上远程登陆且lisi只禁止在101上登录

在这里插入图片描述在这里插入图片描述在这里插入图片描述

三. SSH服务的两种验证方式

  1. 密码验证:对服务器中本地系统用户登录名称,密码进行验证,简单,但可能会被暴力破解
  2. 密钥对验证:要求提供相匹配的密钥才能进行验证通过,通常先在客户端中创建一对密钥文件(公钥和私钥),然后将公钥文件放到服务器中指定位置,远程登录时,系统会使用公钥和私钥进行加密/解密关联验证,增加安全性,且可以免密交互登录。

3.1 公钥与私钥的关系

  1. 公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密
  2. 不能根据一个密钥来推算另一个密钥
  3. 公钥对外公开,私钥只有私钥持有人才知道

当密码验证和密钥验证同时开启时,服务器会优先使用密钥对验证

vim /etc/ssh/sshd_config 配置文件
PasswordAuthentication yes 启用密码验证
PubkeyAuthentication yes 启用密钥对验证
AuthorizedkeysFile .ssh/authorized_keys 指定公钥库文件

四. ssh客户端程序

4.1ssh远程登录

ssh [选项] 用户@ip
-p指定端口号

当用户第一次远程登陆时,必须接受服务器发来的ECDSA密钥验证,接收的密钥信息存放到~/.ssh/known_hosts文件中,验证成功后,即登陆目标服务器命令环境中了

在这里插入图片描述在这里插入图片描述

4.2 scp 远程复制

下行复制:

scp root@192.168.137.101:/etc/passwd /root/passwd.txt
将远程主机中的/etc/passwd文件复制到本机中

在这里插入图片描述上行复制:

scp -r /etc/ssh/ root@192.168.137.102:/opt
将本机中的/etc/ssh目录复制到远程主机中

此复制若对方主机有同名文件则会自动覆盖

在这里插入图片描述
在这里插入图片描述
补充:

在这里插入图片描述

4.3 sftp 安全的ftp

由于使用了加密/ 解密技术,所以传输效率比普通的FTP低,但是安全性更高

五. 配置密钥对验证

  1. 在客户端创建密钥对,在自己的家目录中.ssh目录中生成私钥和公钥

ssh -keygen -t rsa

  1. ssh -copy-id -p 端口号 -i id-rsa.pub 用户@ip地址
    注意生成的.ssh权限要700 authorized _keys 权限为600

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

5.1免交互验证:

就是在创建密钥对时不设置密钥对密码

5.2 在已有的密钥密码验证下实现免交互

ssh - agent bash 设置一个代理(只在当前环境中)
ssh - add 在输入密钥密码

但此操作只能在当前会话中有效,重启则失效

在这里插入图片描述
在这里插入图片描述

六. TCP Wrappers 访问控制 (TCP封套)

将tcp服务程序包裹起来,代为监听tcp服务程序的端口,增加了一个安全检测过程,外来的连接请求必须通过这层安全检测,获得许可后才能进访问真正的服务程序

6.1 TCP Wrappers保护机制的两种实现方式

  1. 直接使用tcpd程序对其他的服务进行保护,需要允许tcpd程序
  2. 其他网络服务程序调用libwrap.so * 链接库,不用运行tcpd程序,此方法更加有效

使用 lld 命令查看程序的libwrap.so 链接库

lld $(which sshd)

在这里插入图片描述

6.2 TCP Wrappers 访问策略

为各种网络服务程序,针对访问服务的客户端地址进行访问控制,对应的策略文件为/etc/hosts.allow和/etc/hosts.deny分别来设置允许和拒绝访问

格式:《服务程序列表》:《客户端地址列表》
客户端地址列表允许使用通配符 * ?

6.3 基本原则

先检查/etc/hosts.allow 文件,密钥则检查/etc/hosts.deny 文件,若都没有相匹配的策略,则全部允许访问

例如
如果我只希望从ip地址为12.0.0.1主机或位于192.168.137.101的主机访问ssh服务,其他的拒绝

vim /etc/hosts.allow
sshd:12.0.0.1,192.168.137.101
vim /etc/hosts.deny
sshd:ALL

在192.168.137.102中设置白名单和黑名单

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

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

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

相关文章

Direct3D 12——计算着色器——计算着色器概念

计算着色器虽然是一种可编程的着色器&#xff0c;但Direct3D并没有将它直接归为渲染流水线中的一部分。虽然如此&#xff0c;但位于流水线之外的计算着色器却可以读写GPU资源。从本质上来说&#xff0c;计算着 色器能够使我们访问GPU来实现数据并行算法&#xff0c;而不必渲染出…

ESP32设备驱动-BH1745NUC 亮度和颜色传感器驱动

BH1745NUC 亮度和颜色传感器驱动 文章目录 BH1745NUC 亮度和颜色传感器驱动2、硬件准备3、软件准备4、驱动实现BH1745NUC 是具有 IC 总线接口的数字颜色传感器 IC。 该 IC 感应红光、绿光和蓝光 (RGB) 并将它们转换为数字值。 高灵敏度、宽动态范围和出色的 Ircut 特性使该 IC …

【CSS3】CSS3 伪元素字体图标 ( 生成 icommon 字体文件 | 字体图标基本使用 | 使用伪元素实现 icommon 字体图标显示 )

文章目录 一、icommon 字体图标基本使用1、生成 icommon 字体文件2、字体图标基本使用 二、使用伪元素实现 icommon 字体图标显示 一、icommon 字体图标基本使用 字体图标 指的是 将图标做成字体样式 , 在 放图标的地方 使用 文字 即可实现 图标显示 ; 1、生成 icommon 字体文件…

Vue2-黑马(十三)

目录&#xff1a; &#xff08;1&#xff09;实战-permissions.js-动态路由 &#xff08;2&#xff09;实战-第三方登录-流程分析 &#xff08;3&#xff09;实战-第三方登录-代码解读 &#xff08;1&#xff09;实战-permissions.js-动态路由 在做根据用户角色动态生成路由…

【Unity+MySQL】实现注册登录系统(升级版)

目录 1 UI界面重新设计1.1 注册界面1.2 登录界面1.3 交互实现 2 注册功能完善2.1 判断用户输入的用户名是否与数据库中的重复2.2 将当前时间更新至用户表的当前注册时间列2.3 将用户输入的注册密码使用哈希加密 3 登录功能完善 接着 上篇文章所谈到的系统缺陷&#xff0c;这篇…

==与equals()的理解

java中的数据类型分为基本数据类型、基本数据类型对应的包装类型&#xff08;引用类型&#xff09;&#xff0c;引用类型三种数据类型。 每一个基本类型java都提供了一个与之对应的包装类型&#xff0c;该包装类型是一个引用类型,并且在基本类型与包装类型之间提供了自动拆箱和…

AD21原理图----网络连线(网络线、网络标签、总线、差分对、信号线束)

目录 网络连线 网络线&#xff08;Wire&#xff09; 网络标签 总线 差分对 信号线束 网络连线 网络线&#xff08;Wire&#xff09; 网络标签 可以跨原理图 总线 用于放置同一类数据 使用步骤 第一步&#xff1a;先绘制网络线 第二步&#xff1a;利用网络标签进行连接&a…

虚拟机下Ubuntu系统的Docker部署

虚拟机下Ubuntu系统的微服务项目Docker部署 文章目录 虚拟机下Ubuntu系统的微服务项目Docker部署1、Ubuntu安装 Docker2、修改后端微服务的配置2.1 修改 MySQL 的配置2.2 修改 Redis 的配置2.3 修改 Nacos 的配置 3、生成微服务镜像4、拉取远程镜像5、生成前端镜像5.1 准备文件…

MacOS安装MongoDB与Redis

1.安装MongoDB: brew tap mongodb/brew brew install mongodb-community 后台服务方式运行mongodb: brew services restart mongodb/brew/mongodb-community 直接运行mongodb非后台服务 /usr/local/opt/mongodb-community/bin/mongod --config /usr/local/etc/mongod.con…

化工行业数字化“智能工厂”-解决方案(ppt可编辑)

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除。 总体架构 设计理念—数据集成与流转 九大核心价值之一 九大核心价值之二 九大核心价值之三 九大核心价值之四 九大核心价值之五 九大核心价值之六 九大核心价值之七 九大核心…

数据库学习-常用的SQL语句

背景&#xff1a; 汇整一下自己学习数据库过程中常见的题目及语句。 一.实例分析题 二&#xff0e;简单SQL查询&#xff1a; 1&#xff09;:统计每个部门员工的数目select dept,count(*) from employee group by dept;2&#xff09;:统计每个部门员工的数目大于一个的记录se…

3.4 迭代法

4.1 雅克比迭代法&#xff1a; 雅可比迭代法是一种用于求解线性方程组的迭代算法&#xff0c;其基本思想是将线性方程组中的系数矩阵拆分为对角线矩阵和非对角线矩阵两部分&#xff0c;并利用对角线矩阵的逆矩阵来迭代求解方程组。 具体地&#xff0c;设线性方程组为Axb&…

操作系统笔记--虚拟内存的使用

1--背景概念 在计算机系统中&#xff0c;当多道程序同时运行时可能会出现内存不足的情况&#xff0c;一般可通过以下技术进行解决&#xff1a; 覆盖技术&#xff1a; 当程序太大超出内存容量时&#xff0c;可以采用手动覆盖的技术&#xff0c;只把需要的指令和数据保存在内存当…

SSM整合、环境配置以及基础综合测试(单表查询、多表查询和数据分页、前后端分离、Vue3)

SSM整合、环境配置以及基础综合测试 准备&#xff1a;创建maven项目以及项目框架准备 SSM整合简介 介绍: SSM(SpringSpringMVCMyBatis) 整合&#xff0c;就是三个框架协同开发。Spring整合Mybatis就是将Mybatis核心配置文件当中数据源的配置、事务处理、以及工厂的配置&…

Docker的使用说明

目录 第一章什么是Docker 1.1.Docker的概述 1.2.什么是容器 1.3.Docker核心概念 第二章.安装 Docker 2.1.安装环境部署 2.2.安装 Docker-CE并设置为开机自动启动 2.2.Docaker的简单信息查看 第三章.Docker 操作 3.1.Docker的镜像操作 3.2.Docker 容器操作 3.3.容器…

Baumer工业相机堡盟工业相机如何联合BGAPISDK和佳能EF变焦镜头实现相机的自动变焦(C#)

Baumer工业相机堡盟工业相机如何联合BGAPISDK和佳能EF变焦镜头实现相机的自动变焦&#xff08;C#&#xff09; Baumer工业相机Baumer工业相机BGAPISDK中控制变焦镜头的技术背景代码案例分享第一步&#xff1a;开启相机自动调焦功能模块第二步&#xff1a;控制自动变焦镜头电机的…

Delphi DataSnap 流程分析(二)

Delphi DataSnap 流程分析(一)_看那山瞧那水的博客-CSDN博客 粗略分析了 创建传统DataSnap的流程&#xff0c;现在再分析下创建现在更常用的 方式&#xff1a; DataSnap REST Application 这种方式只支持HTTP(普通HTTP和REST HTTP)通信&#xff0c;不支持TCP通信。 这种方式…

详解C语言string.h中常见的13个库函数(上)

我计划讲解C语言string.h这个头文件中&#xff0c;最常见的13个库函数。为了让大家更加深入的理解这些函数&#xff0c;部分函数我会模拟实现。篇幅所限&#xff0c;如果文章太长了&#xff0c;可能会较难坚持读完&#xff0c;所以我会分几篇博客来讲述。本篇博客主要讲解的函数…

什么是全民开发?|概念、技能和优势

注&#xff1a;全民开发的英文是Citizen Development&#xff0c;由咨询公司Gartner在2010年提出的概念&#xff0c;指非专业开发人员使用低代码或无代码平台创建应用程序&#xff0c;无需IT部门的支持&#xff0c;旨在提高生产力并降低开发成本。 国内普遍将Citizen Developme…

【ROS】单目摄像机的标定

在上节: ROS 教程之 vision : 用笔记本摄像头获取图像 能够使用相机后&#xff0c;就需要对相机进行标定&#xff0c;在ROS上使用原始图像校准单目相机。 操作步骤 1、首先将catkin_ws/src/usb_cam/launch/usb_cam-test.launch的文件内容修改掉。 原有内容&#xff1a; <…