当前位置: 首页 > 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 上一章的软件安装完成之后,就可以创建文件夹来学习写…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”,无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息: 关注测试号:扫二维码关注测试号。 发送模版消息: import requests da…...

vscode里如何用git

打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言: 在人工智能快速发展的浪潮中,快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型(LLM)。该模型代表着该领域的重大突破,通过独特方式融合思考与非思考…...

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任务 三、…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...

【论文笔记】若干矿井粉尘检测算法概述

总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...