当前位置: 首页 > news >正文

4 - Linux远程访问及控制

目录

一、SSH远程管理

1. SSH概述

2.SSH的优点

3.配置OpenSSH客户端

4.sshd服务支持的两种验证方式

5. 使用SSH客户端程序

5.1 ssh - 远程登录

5.2 scp - 远程复制

6.配置密钥对验证

二、TCP Wrappers访问控制

1.TCP Wrappers 概述

2. TCP Wrappers 机制的基本原则

三、对称密钥与非对称密钥

1.对称密钥(Symmetric Key)

2.非对称密钥(Asymmetric Key)

四、在终端中使用私钥文件登录服务器


一、SSH远程管理

1. SSH概述

SSH(Secure Shell)协议

  • SSH是一种安全通道协议,主要用来实现字符界面的远程登录,远程复制等功能。
  • SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登陆时输入的口令。

OpenSSH

OpenSSH是实现SSH协议的开源软件项目,适用于各种UNIX、Linux操作系统。

  • 服务名称:sshd
  • 默认端口号:22
  • 服务端主程序:/usr/sbin/sshd
  • 服务端配置文件:/etc/ssh/sshd_config
  • 客户端配置文件:/etc/ssh/ssh_config

2.SSH的优点

  • SSH是较可靠,专为远程登录会话和其他网络服务提供安全性的协议
  • 利用SSH协议可以有效防止远程管理过程中的信息泄露问题
  • SSH最初是Unix系统中的一个程序,后来又迅速扩展到其他操作平台
  • SSH在正确使用时可弥补网络中的漏洞
  • 数据传输的过程是加密的,具有安全稳定的特点
  • 数据传输的方式是压缩的,可以提高传输速度

3.配置OpenSSH客户端

  • shd_config配置文件的常用选项设置
vi /etc/ssh/sshd_config......
Port 22    #监听端口为 22
ListenAddress 0.0.0.0    #监听地址为任意网段,也可以指定OpenSSH服务器的具体IP
LoginGraceTime 2m    #登录验证时间为 2 分钟
PermitRootLogin no    #禁止 root 用户登录
MaxAuthTries 6    #最大重试次数为 6PermitEmptyPasswords no    #禁止空密码用户登录
UseDNS no    #禁用 DNS 反向解析,以提高服务器的响应速度AllowUsers zhangsan lisi wangwu@61.23.24.25
#只允许zhangsan、lisi、wangwu用户登录,且其中wangwu用户仅能够从IP地址为61.23.24.25的主机远程登录DenyUsers zhangsan
#禁止某些用户登录,用法于AllowUsers类似(注意不要同时使用)

4.sshd服务支持的两种验证方式

密码验证

  • 对服务器中本地系统用户的登录名称、密码进行验证。简便,但可能会被暴力破解

密钥对验证

  • 有球提供相匹配的密钥信息才能通过验证。通常先在客户端中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密\解密关联验证。能够增强安全性,且可以免交互登录

5. 使用SSH客户端程序

5.1 ssh - 远程登录

ssh "选项" "用户名"@"ip\名称"

例: ssh -p 1022 zhangsan@20.0.0.13

# "-p"指定端口号

5.2 scp - 远程复制

  • 下行复制:

scp "用户名"@"ip/名称":"被复制的远程主机文件路径" "复制到的本机文件路径"

例:scp root@20.0.0.13:/etc/passwd /root/passwd10.txt

  • 上行复制:

scp "被复制的本机文件路径" "用户名"@"ip\名称":"复制到的远程主机文件路径"

例:scp /root/passwd root@20.0.0.13:/etc/passwd10.txt

  • "-r"选项:递归复制目录
  • "-P"选项:指定端口号

6.配置密钥对验证

1.在客户端使用ssh-keygen工具创建密钥对文件(可用的加密算法为RSA、ECDSA、DSA等)

ssh-kegen -t rsa

#"-t"选项:指定加密算法类型

[root@wzx ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):    #指定私钥位置(回车默认)
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):    #设置私钥密码(回车默认)
Enter same passphrase again:    #确认输入(回车默认)
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:GqXMgBqBoMByselDeDiNraMgVv17fJrXb7FQ0NHGl5o root@wzx
The key's randomart image is:
+---[RSA 2048]----+
|B ..          .o+|
|=O.+.        . o=|
|O.O...  .     +..|
| O.  +.o     E . |
|*.o   =.S     .  |
|=. .   oo    . . |
|.     .. o .. . o|
|        . +. . o |
|         o.   o. |
+----[SHA256]-----+
  • 生成的私钥、公钥文件默认存放在宿主目录中的隐藏目录.ssh/下

2.将公钥文件上传至服务器

ssh-copy-id root@20.0.0.12

"-i"选项:指定密钥文件

[root@wzx ssh]# ssh-copy-id root@20.0.0.12
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '20.0.0.12 (20.0.0.12)' can't be established.
ECDSA key fingerprint is SHA256:1R40yTT7DYnXgxAb8W4TabvlPcU9038lLVjDrQqnpnA.
ECDSA key fingerprint is MD5:03:ae:25:33:8f:08:48:80:85:d4:3a:73:f2:49:83:a4.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@20.0.0.12's password:Number of key(s) added: 1Now try logging into the machine, with:   "ssh 'root@20.0.0.12'"
and check to make sure that only the key(s) you wanted were added.

3.使用密钥对验证登录

ssh root@20.0.0.12

[root@wzx ssh]# ssh root@20.0.0.12
Last login: Mon Aug 19 23:47:41 2024 from 20.0.0.1

二、TCP Wrappers访问控制

1.TCP Wrappers 概述

  • TCP Wrapper 机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制。
  • 对应的两个策略文件为:/etc/hosts.allow 和 /etc/hosts.deny ,分别用来设置允许和拒绝的策略。

格式:

"服务程序列表":"客户端地址列表"

(1) 服务程序列表:

  • ALL:代表所有的服务
  • 单个服务程序:如"vsftpd"
  • 多个服务程序组成的列表:如"vsftpd.sshd"

(2) 客户端地址列表:

  • ALL:代表任何客户端地址
  • LOCAL:代表本机地址
  • 多个地址以逗号分隔
  • 允许使用通配符"*"、"?",
  • 网段地址,如 192.168.20. 或 192.168.20.0/255.255.255.0
  • 区域地址,如".benet.com"

2. TCP Wrappers 机制的基本原则

首先检查/etc/hosts.allow(白名单)文件,如果找到相匹配的策略,则允许访问;

否则继续检查/etc/hosts.deny(黑名单)文件,如果找到相匹配的策略,则拒绝访问;

如果检查上述两个文件都找不到相匹配的策略,则运行访问。

  • 允许所有,拒绝个别:

只需在/etc/hosts.deny文件中添加相应的拒绝策略

  • 允许个别,拒绝所有:

除了在/etc/hosts.allow中添加允许策略之外,还需要再/etc/hosts.deny文件中设置"ALL:ALL"的拒绝策略。

三、对称密钥与非对称密钥

1.对称密钥(Symmetric Key)

对称密钥加密,又称为私钥加密或会话密钥加密算法,是一种加密和解密使用相同密钥或可以相互推算的密钥对的加密方式。

优点:

  • 加解密速度快,适合处理大量数据

缺点:

  • 密钥管理困难,泄露风险大

2.非对称密钥(Asymmetric Key)

非对称密钥加密,又称为公钥密钥加密,它需要使用一对密钥来分别完成加密和解密操作。这对密钥包括一个公钥和一个私钥,公钥可以公开发布,而私钥则由用户自己秘密保存。

优点:

  • 泄露风险低

缺点:

  • 加解密速度慢

四、在终端中使用私钥文件登录服务器

1.在服务端中生成密钥

[root@wzx ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:xfbf6ZBU+BSvX7kPn4Pyu//Ug5kvOiZI2m6Bndv77Qg root@wzx
The key's randomart image is:
+---[RSA 2048]----+
|               . |
|         .    . o|
|          +  . o.|
|         o .  +..|
|      o S   ...o.|
|     . =    ..=o=|
|      + =E   *++=|
|     . = o.+oo+=+|
|      o. .=+**==*|
+----[SHA256]-----+

2.将id_rsa私钥文件导出到客户端(可使用ftp工具等) 

3.找到公钥文件并追加到authorized_keys文件内

[root@wzx ~]# cd .ssh
[root@wzx .ssh]# ls
id_rsa  id_rsa.pub
[root@wzx .ssh]# cat id_rsa.pub >> authorized_keys
[root@wzx .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub
[root@wzx .ssh]# cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6bCV0EHdsXSD83CG4iNl81D1vDLiuywSsbj+3ANQOK4qRWNPOHfOIBXGANZQsT+33CrJY4ZvFnvcIeWpS+/fYyFnTekHPzuOROzcZYfkBxm1SB7YM5pLnHr8YdyUCOaYUhLYBuBixm80l1QvVOPnNRkKgzcOsOQSpOihGXgAa2d7lbOnr8UOO/aJ/6FQ2xxcCEcP9sG3h/uvCi7BP430XQPmfVksRm/tR+8sPNJNzioXgIoh5Sc6Rqp2C1IC3Krx3um4FCyqJJZJ6I7uY74g+L/Nt7IT3qTr13zVVjEAktNV0zMvdxRTNnIzEWTrhwEDASzJs3ewDjv1FESGErHTH root@wzx

4.配置sshd_config文件

ot@wzx .ssh]# vim /etc/ssh/sshd_config ......
PubkeyAuthentication yes    #启用公钥验证
......[root@wzx .ssh]# systemctl restart sshd    #重启刷新配置

5.在终端中设置私钥登录

6.登录

 成功登录且不用输入密码

相关文章:

4 - Linux远程访问及控制

目录 一、SSH远程管理 1. SSH概述 2.SSH的优点 3.配置OpenSSH客户端 4.sshd服务支持的两种验证方式 5. 使用SSH客户端程序 5.1 ssh - 远程登录 5.2 scp - 远程复制 6.配置密钥对验证 二、TCP Wrappers访问控制 1.TCP Wrappers 概述 2. TCP Wrappers 机制的基本原则 …...

如何使用AWS EC2资源?

随着云计算技术的迅速发展,越来越多的企业和个人选择将工作负载迁移到云端,以获取灵活性、可扩展性和成本效益。作为全球领先的云计算服务提供商,AWS为用户提供了丰富的服务,其中最受欢迎的之一是云服务器EC2。本文中九河云将探讨…...

Linux高编-进程的概念(1)

目录 1.ps aux 2.top 3.kill -2 进程pid // fork函数 getpid拿自己的进程号 getppid拿父进程号 fork()&&fork()||fork() 父子进程的关系: 僵尸进程,孤儿进程 僵…...

go语言中new和make的区别

在 Go 语言中,new 函数不能用来创建通道(chan),这是因为 new 只分配内存并返回指向该内存的指针,而不负责初始化内存。 为什么不能使用 new 来创建通道? new 只能分配内存,但不会对内存进行初…...

SpringBoot响应式编程(3)R2DBC

一、概述 1.1简介 R2DBC基于Reactive Streams反应流规范,它是一个开放的规范,为驱动程序供应商和使用方提供接口(r2dbc-spi),与JDBC的阻塞特性不同,它提供了完全反应式的非阻塞API与关系型数据库交互。 …...

什么是私有继承

私有,公有,针对类而言; 私有( private )的成员,自己的,只能在自己内部( 类的定义体内部 )访问,外部( 类的定义体外部 )不能访问/调用; 公有( 或者说公开,public )的成员&#xff0…...

Scratch编程:开启智能硬件控制的大门

标题:“Scratch编程:开启智能硬件控制的大门” 在当今数字化时代,编程不仅仅是与计算机的交互,更是与物理世界的连接。Scratch,这款由麻省理工学院媒体实验室开发的视觉化编程语言,以其易学易用的特性&…...

机器学习第十二章-计算学习理论

目录 12.1基础知识 12.2 PAC学习 12.3有限假设空间 12.3.1可分情形 12.3.2不可分情形 12.4VC维 12.5 Rademacher复杂度 12.1基础知识 计算学习理论研究的是关于通过"计算"来进行"学习"的理论,即关于机器学习的理论基础,其目的…...

Java-自定义注解操作日志记录处理(@Pointcut注解不是必须的)

在Java中,使用自定义注解结合Spring AOP来实现操作日志记录是一种常见的做法。这种方式可 以帮助你轻松地在不修改业务代码的情况下增加日志记录的功能。 下面我将详细介绍如何定义一个自定义注解,并结合Spring AOP来实现操作日志记录的功能。 1. 定义自定义注解 首先,我…...

【c++】深入理解别名机制--引用

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:C 目录 前言 一、引用的概念和定义 二、引用的特性 三、引用的实用性 1.引用传参 2.引用做返回值 2.1 引用做返回值的作用 2.2 引用坍缩问题、悬挂引用问…...

简便的qemu img扩容方法

虚拟机用着用着磁盘空间就不够了,那就要想办法增加磁盘空间大小 了。在虚拟机本身磁盘的基础上直接增加空间大小最简便,于是记录一下方法。 首先,在虚拟机关机状态下,使用qemu-img命令给虚拟机的磁盘镜像增加虚拟空间5GB&#xff…...

EPERM: operation not permitted,

这个错误提示 EPERM: operation not permitted, mkdir C:\Program Files\nodejs\node_global\node_modules\pnpm_tmp 通常是因为权限不足导致的。在 Windows 系统中,C:\Program Files\ 目录通常需要管理员权限才能写入。 要解决这个问题,你可以尝试以下…...

将Centos 8 Linux内核版本升级或降级到指定版本

本文以centos 8.0为例,内核版本为4.18.0-80.el8.x86_64,升级到内核版本为4.18.0-80.4.2.el8_0.x86_64。 1.查看当前系统版本信息 [rootcentos80-1905 ~]# uname -sr Linux 4.18.0-80.el8.x86_642.在网站:https://vault.centos.org/里面下载…...

小程序商城被盗刷,使用SCDN安全加速有用吗?

在电子商务蓬勃发展的今天,小程序商城因其便捷性和灵活性成为商家和消费者的新宠。然而,随着其普及,小程序商城的安全问题也日益凸显,尤其是盗刷现象频发,给商家和用户带来了巨大损失。面对这一挑战,是否可…...

nginx的基本使用与其日志

文章目录 1.nginx编译安装脚本2.nginx平滑升级,以及其步骤3.nginx核心配置,及实现nginx多虚拟主机4.nginx日志格式定制5.nginx反向代理及https安全加密6.基于LNMP和Redis的phpmyadmin的会话保持,以及其完整步骤 1.nginx编译安装脚本 #编译安…...

linux | 苹果OpenCL(提高应用软件如游戏、娱乐以及科研和医疗软件的运行速度和响应)

点击上方"蓝字"关注我们 01、引言 >>> OpenCL 1.0 于 2008 年 11 月发布。 OpenCL 是为个人电脑、服务器、移动设备以及嵌入式设备的多核系统提供并行编程开发的底层 API。OpenCL 的编程语言类似于 C 语言。其可以用于包含 CPU、GPU 以及来自主流制造商如 …...

算法-UKF中Sigma点生成

void UKF::MakeSigmaPoints() {Eigen::VectorXd x_aug_ Eigen::VectorXd(n_x_);x_aug_.head(n_x_) x_;Eigen::MatrixXd P_aug Eigen::MatrixXd::Zero(n_x_, n_x_);// 转成正定矩阵P_aug pdefinite_svd(P_);// LLT分解Eigen::MatrixXd L P_aug.llt().matrixL();sigma_point…...

精选五款热门骨传导耳机分享,让你避免踩坑的陷阱

因为骨传导耳机独特的佩戴方式和声音的传播方式,受到了小耳、油耳以及运动爱好者的的喜爱,但也由于市面上的骨传导耳机品牌越来越多,很多朋友不知道该怎么选择,今天我挑选出市面上体验感较好,各方面比较出色的骨传导给…...

「字符串」前缀函数|KMP匹配:规范化next数组 / LeetCode 28(C++)

概述 为什么大家总觉得KMP难?难的根本就不是这个算法本身。 在互联网上你可以见到八十种KMP算法的next数组定义和模式串回滚策略,把一切都懂得特别混乱。很多时候初学者的难点根本不在于这个算法本身,而是它令人痛苦的百花齐放的定义。 有…...

python人工智能002:jupyter基本使用

小知识:将jupyter修改为中文,修改用户变量, 注意是用户变量,不是系统变量 新增用户变量 变量名:LANG 变量值:zh_CN.UTF8 然后重启jupyter 上一章的软件安装完成之后,就可以创建文件夹来学习写…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

【力扣数据库知识手册笔记】索引

索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...

ESP32读取DHT11温湿度数据

芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

爬虫基础学习day2

# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...

C++.OpenGL (20/64)混合(Blending)

混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...