远程访问及控制

文章目录

  • 远程访问及控制
    • 一、SSH远程管理
      • 1、SSH(Secure Shell)协议定义
      • 2、SSH的优点
      • 3、OpenSSHell
    • 二、配置OpenSSH服务端
      • 1、sshd_config配置文件的常用选项
      • 2、sshd服务支持的两种验证方式
        • 2.1 密码验证
        • 2.2 秘钥对验证
    • 三、SSH客户端程序的使用
      • 1、基本用法
        • 1.1 直接连接
        • 1.2 连接指定用户
        • 1.3 连接指定端口号
        • 1.4 跳板机
      • 2、黑白名单
      • 3、修改默认端口号
      • 4、禁止root用户登录
      • 5、ssh服务的最佳实践
    • 四、使用密钥对免交互验证登录
      • 免密的登录方式

远程访问及控制

一、SSH远程管理

1、SSH(Secure Shell)协议定义

  • 是一种安全通道协议,主要用来实现字符界面的远程,远程复制等功能
  • SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。因此SSH协议具有很好的安全性。
  • TELNET协议:不加密,仅适用于测试

2、SSH的优点

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

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

    客户端:finalshell、Xshell、mobaxterm、CRT、Putty

    服务端:OpenSSH

3、OpenSSHell

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

  • CentOS 7系统默认以安装openssh县官软件包,并已将 sshd 服务添加为 开机自启动

  • 执行“systemctl start sshd”命令即可启动 sshd服务

  • sshd 服务使用的默认端口号为22

  • sshd 服务的默认配置文件为/etc/ssh/sshd_config

    服务名称:sshd

    服务端主程序:/usr/sbin/sshd

    服务端默认配置文件:/etc/ssh/sshd_config

image-20240113143453125

注:ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于前者是针对客户端的配置文件,后者则是针对服务端的配置文件

二、配置OpenSSH服务端

1、sshd_config配置文件的常用选项


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

image-20240113144033959

2、sshd服务支持的两种验证方式

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

当密码验证、密钥对验证都启用时, 服务器将优先使用密钥对验证。 可根据实际情况设置验证方式。

三、SSH客户端程序的使用

1、基本用法

1.1 直接连接
  • 命令格式:ssh ip地址

image-20240114222542555

当用户第一次登录SSH服务器时,必须接受服务器发来的ECDSA密钥(根据提示输入"yes")后才能继续验证。接收的密钥信息将保存到~/.ssh/known_hosts 文件中。 密码验证成功以后,即可登录目标服务器的命令行环境中了。同意之后,下次登录就会自动获取服务端的公钥

image-20240114222743932

1.2 连接指定用户
  • 命令格式:

    ssh 用户名@ip地址

    ssh 用户名 ip地址

image-20240114223225960

1.3 连接指定端口号
  • 命令格式:ssh ip地址 -p 端口号

sshd服务的默认端口号是 22,如果是其他端口号,需要 -p 来指定端口

①、在 vim /etc/ssh/sshd_config配置文件下修改端口号,修改完配置之后需要重启服务,使配置文件生效

image-20240114224948798

②、然后去远程连接

image-20240115161550694

1.4 跳板机
  • 命令格式: ssh -t ip地址 ssh -t ip地址 ssh -t ip地址 …

image-20240114225846404

2、黑白名单

  • 白名单:默认拒绝所有,只有白名单上的用户才可以访问
  • 黑名单:默认允许所有,只有黑名单上的用户不允许访问

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

image-20240115153610111

image-20240115153843749

image-20240114235643042

3、修改默认端口号

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

image-20240115142810864

4、禁止root用户登录

image-20240115150054011

image-20240115145948297

  • 修改pam认证模块,使普通用户登录后不能切换到root用户

image-20240115151202330

image-20240115151409308

5、ssh服务的最佳实践

  1. 建议使用非默认端口 22

  2. 限制可登录用户白名单

  3. 设定空闲会话超时时长

  4. 利用防火墙设置ssh访问策略

  5. 仅监听特定的IP地址 公网 内网

  6. 基于口令认证时,使用强密码策略,比如:tr -dc A-Za-z0-9_ < /dev/urandom | head -c 12| xargs

  7. 使用基于密钥的认证

  8. 禁止使用空密码

  9. 禁止root用户直接登录

  10. 限制ssh的访问频度和并发在线数

  11. 经常分析日志分离

四、使用密钥对免交互验证登录

免密的登录方式

  1. 首先在客户端生成一对密钥(ssh-keygen)

  2. 并将客户端的公钥ssh-copy-id 拷贝到服务端

  3. 当客户端再次发送一个连接请求,包括ip、用户名

  4. 服务端得到客户端的请求后,会到authorized_keys()中查找,如果有响应的IP和用户,就会随机生成一个字符串,例如:kgc

  5. 服务端将使用客户端拷贝过来的公钥进行加密,然后发送给客户端

  6. 得到服务端发来的消息后,客户端会使用私钥进行解密,然后将解密后的字符串发送给服务端

  7. 服务端接受到客户端发来的字符串后,跟之前的字符串进行对比,如果一致,就允许免密码登录

##192.168.10.11地址的设备的操作步骤:
ssh-keygen
#生成密钥对
Generating public/private rsa key pair.
#默认使用rsa算法
Enter file in which to save the key (/root/.ssh/id_rsa):
#密钥存放的文件位置是/root/.ssh/id_rsa
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
#覆盖
Enter passphrase (empty for no passphrase):
#设置密钥文件密码,不少于5位
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:xpW9Zo9EqbSTaLGCLIU7cdu+DtXSSPQMwdVN+hSGQEU root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
|     .+++=E++    |
|   . ..+  o=.o   |
|  o o . + = =    |
|   * = = * B .   |
|  + + * S = *    |
|   o o =   = o   |
|    . .     . .  |
|     . .         |
|     .o          |
+----[SHA256]-----+
#提供了密钥的随机艺术图像,是一种可视化的方式来显示密钥的指纹信息cd .ssh/
#切换目录ls
id_rsa  id_rsa.pub  known_hosts
#查看ssh下生成的文件ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.10.12
#将密钥文件传给192.168.10.12地址
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/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@192.168.10.12's password:
#此处输入目标地址192.168.10.12用户的登录密码Number of key(s) added: 1Now try logging into the machine, with:   "ssh '192.168.10.12'"
and check to make sure that only the key(s) you wanted were added.##192.168.10.12地址的设备的操作步骤:
cd .ssh/
#切换目录ls
authorized_keys  known_hosts
#查看传过来的密钥文件##验证:
[root@localhost .ssh]#ssh 192.168.10.12
Last login: Mon Jan 15 08:20:10 2024 from 192.168.10.1
[root@liuyanfen12 ~]#
#此时远程登录,不需要验证密码

image-20240115155119896

image-20240115160011301

image-20240115160505482

  • 验证

image-20240115160832265

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

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

相关文章

数据结构(三)堆和哈希表

目录 哈希表和堆什么是哈希表 &#xff1f;什么是堆 &#xff1f;什么是图 &#xff1f;案例一&#xff1a;使用python实现最小堆案例二 &#xff1a; 如何用Python通过哈希表的方式完成商品库存管理闯关题 &#xff08;包含案例三&#xff1a;python实现哈希表&#xff09; 本…

鸿鹄电子招投标系统源码实现与立项流程:基于Spring Boot、Mybatis、Redis和Layui的企业电子招采平台

随着企业的快速发展&#xff0c;招采管理逐渐成为企业运营中的重要环节。为了满足公司对内部招采管理提升的要求&#xff0c;建立一个公平、公开、公正的采购环境至关重要。在这个背景下&#xff0c;我们开发了一款电子招标采购软件&#xff0c;以最大限度地控制采购成本&#…

canvas创建图像数据,并在画布上展示

查看专栏目录 canvas示例教程100专栏&#xff0c;提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重…

简单整理FFmpeg相关命令集

FFmpeg相关命令集 简单整理了FFmpeg相关命令&#xff0c;主要包括ffplay播放控制和媒体播放命令、ffmpeg命令相关参数以及常用的提取音视频等命令。 &#x1f3a1;导航小助手&#x1f3a1; FFmpeg相关命令集1.ffmpeg命令分类查询2.ffplay命令2.1 ffplay播放控制2.2 ffplay命令…

【J-Flash基本使用总结】

【J-Flash基本使用总结】 VX&#xff1a;hao541022348 ■ 烧录文件■ 创建新的工程■ 烧录模式-SWD模式■ J-Flash下载程序到单片机 ■ J-Flash拼接多个hex或bin文件■ J-Flash读单片机的option byte■ J-Flash读单片机Flash数据■ 将读出来的文件用jflash烧录到其他的芯片■ 设…

【C++ 程序设计入门基础】- 第4节-函数

1、函数 函数是对实现某一功能的代码的模块化封装。 函数的定义&#xff1a; 标准函数&#xff1a; 输入 n 对整数的 a、b &#xff0c;输出它们的和。 #include <iostream> #include <windows.h> using namespace std;int add(int a,int b);//函数原型声明int…

Python数据分析案例34——IMDB电影评论情感分析(Transformer)

电影评论的情感分析 案例背景 很多同学对电影系列的数据都比较喜欢&#xff0c;那我就补充一下这个最经典的文本分类数据集&#xff0c;电影情感评论分析。用神经网络做。对国外的英文评论文本进行分类&#xff0c;看是正面还是负面情感。 数据集介绍 数据集&#xff1a;IMDb…

java每日一题——ATM系统编写(答案及编程思路)

前言&#xff1a; 基础语句学完&#xff0c;也可以编写一些像样的程序了&#xff0c;现在要做的是多加练习&#xff0c;巩固下知识点&#xff0c;打好基础&#xff0c;daydayup! 题目&#xff1a;模仿银行ATM系统&#xff0c;可以创建用户&#xff0c;存钱&#xff0c;转账&…

VMware workstation安装debian-12.1.0虚拟机(最小化安装)并配置网络

VMware workstation安装debian-12.1.0虚拟机&#xff08;最小化安装&#xff09;并配置网络 Debian 是一个完全自由的操作系统&#xff01;Debian 有一个由普罗大众组成的社区&#xff01;该文档适用于在VMware workstation平台安装最小化安装debian-12.1.0虚拟机。 1.安装准…

索引和视图

索引和视图 一、实验目的 学会使用SQL语句CREATE INDEX创建索引。学会使用SQL语句DROP INDEX删除索引。学会使用SQL语句CREATE VIEW创建视图的用法。掌握使用SQL语句ALTER VIEW修改视图的方法。了解删除视图的SQL语句DROP VIEW的用法。 二、实验内容SQL语句CREATE INDEX创建索…

谷粒商城-缓存使用分布式锁SpringCache(5天)

缓存使用 1.1.1 哪些数据适合放入缓存 即时性、 数据一致性要求不高的 访问量大且更新频率不高的数据&#xff08;读多&#xff0c; 写少&#xff09; 例如&#xff1a;电商类应用&#xff0c; 商品分类&#xff0c; 商品列表等适合缓存 本地缓存 使用Map进行本地缓存 本地缓存…

基于JavaWeb+BS架构+SpringBoot+Vue智慧党建系统设计与实现

基于JavaWebBS架构SpringBootVue智慧党建系统设计与实现 文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 文末获取源码 Lun文目录 1 概 述 1 1.1 课题研究背景 1 1.2 课题研究意义 1 1.3 课题研究内容 2 2 系统开…

MySQL 基于 GTID 主从复制

GTID 定义 GTID 是 MySQL 事务标识&#xff0c;为每一个提交的事务都生成一个标识&#xff0c;并且是全局唯一的&#xff0c;这个特性是从 MySQL5.6 引进的。 组成 GTID 是由 UUID TID&#xff0c;UUID 是MySQL的唯一标识&#xff0c;每个MySQL实例之间都是不同的。TID是代表…

速度之巅-位图算法

1:简单通俗来讲就是速度非常之快 以字节为单位,用一位一位寻找 #include <iostream> using namespace std; //加载数据 //就是将能被3整除的位设置为:1 void init(char* data, int len) {unsigned int n len * 8;for (unsigned i 0; i < n; i){if (i%30){//判断能被…

DNS从入门到精通

DNS从入门到精通 Dns从入门到精通 DNS从入门到精通一、DNS原理二、企业高速缓存dns的搭建三、DNS相关名词解释四、权威DNS搭建编辑子配置文件&#xff08;主要写我们维护的域zone)开始解析 五、权威dns中的数据记录种类及应用编辑子配置文件&#xff08;主要写我们维护的域zone…

图像提取大师:轻松从指定时长中获取某帧的图片,视频剪辑方法

在数字媒体时代&#xff0c;视频和图像已成为生活中不可或缺的部分。要从视频中提取某一帧作为图片&#xff0c;或者在视频剪辑时要采用其他的方法来达到需求的效果。下面来看云炫AI智剪如何轻松地从指定时长的视频中获取某帧的图片&#xff0c;视频剪辑的新方法。 视频中按指定…

JMeter定时器之同步定时器

JMeter定时器之同步定时器 1. 背景2. 目的3. 介绍4. 例子4.1单个请求4.2多个请求 1. 背景 在实际生活中大家肯定遇到过一种场景&#xff0c;就是在某一时间或某一时刻&#xff0c;某件商品进行抢购&#xff0c;相当于秒杀&#xff1b;但是用JMeter进行测试的时候&#xff0c;如…

tcpdump常用命令

tcp首部解析&#xff1a; tcp-首部_tcp首部-CSDN博客 ref&#xff1a; Home | TCPDUMP & LIBPCAP https://www.cnblogs.com/onlyforcloud/p/4396126.html tcpdump 详细使用指南&#xff08;请尽情食用&#xff09;_tcpdump指定ip和端口-CSDN博客 【博客192】抓取报文查…

【Python机器学习】SVM——线性模型与非线性特征

SVM&#xff08;核支持向量机&#xff09;是一种监督学习模型&#xff0c;是可以推广到更复杂模型的扩展&#xff0c;这些模型无法被输入空间的超平面定义。 线模型在低维空间中可能非常受限&#xff0c;因为线和平面的灵活性有限&#xff0c;但是有一种方式可以让线性模型更加…

软件测试|Python数据可视化神器——pyecharts教程(十四)

使用pyecharts绘制极坐标系图 简介 极坐标系图是一种用于可视化数据的坐标系&#xff0c;与常见的直角坐标系图&#xff08;笛卡尔坐标系&#xff09;不同&#xff0c;它使用角度和半径来表示数据点的位置。极坐标系图非常适合展示数据的循环性和周期性关系&#xff0c;以及数…