Linux网络服务远程访问及控制SSH(你明目张胆的偏爱就是救赎)

news2024/11/23 13:11:57

文章目录

  • 一、SSH的介绍及其相关知识点
    • 1.简介
    • 2.SSH的优点
    • 3.SSH的密钥登录
  • 二、SSH的运用
    • 1.存放ssh服务端的配置文件
    • 2.白名单&黑名单
    • 3.存放ssh客户端的配置文件
  • 三、ssh密钥登录操作
    • 1.密码验证
    • 2.秘钥对验证
    • 3.ssh远程登录
      • SCP 远程复制
      • SFTP获取服务端的文件
  • 四、秘钥对的创建
    • 操作步骤
  • TCP_Wrappers的运用
    • CP_wapper的工作原理
    • CP_wapper的基本原则
    • TCP_Wrappers的运用
    • 实例
  • 总结

一、SSH的介绍及其相关知识点

1.简介

SSH 为 Secure shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登陆会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

SSH 启用的端口为:TCP22号端口
telnet启用的端口为:TCP23号端口
在这里插入图片描述

2.SSH的优点

SSH 是较可靠专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。S S H最初是U N I X系统上的一个程序,后来又迅速扩展到其他操作平台。S S H在正确使用时可弥补网络中的漏洞。客户端包含ssh程序以及像scp(远程拷贝)、slogin(远程登陆)、sftp(安全文件传输)等其他的应用程序。

  • 数据传输的过程是加密的,具有安全稳定的特点
  • 数据传输的方式是压缩的,可以提高传输速度

3.SSH的密钥登录

什么是秘钥?
密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥。而ssh密钥就是一种非对称性的密钥。

ssh 远程访问控制中不仅仅可以使用用户密码登录,还可以通过 密钥进行登录。而密钥登录的产生是通过客户端与服务端进行一系列的操作过程产生的。

密钥登录的过程:

  1. ssh客户端通过ssh-keygen生成自己的公钥和私钥,将公钥发送给ssh服务端,并且放在指定的位置。

2.公钥发送完毕后。ssh客户端再向ssh 服务端进行登录请求。

3.ssh服务端收到ssh客户端的登录请求后,ssh服务端用对应的公钥加密一些随机数返回给ssh客户端。

4.ssh客户端收加密的随机数后使用私钥对其进行解密,再将解密的结果发送给ssh服务端进行验证。

  1. ssh服务端接收到ssh客户端发送过来的解密数据,将其与原数据进行比对,保持一致则允许用户进行登录

在这里插入图片描述

二、SSH的运用

1.存放ssh服务端的配置文件

/etc/ssh/sshd_config

vim /etc/ssh/sshd_config
 
常用选项配置
 
#Port 22
#ListenAddress 0.0.0.0

在这里插入图片描述
常用配置项:

#LoginGraceTime 2m         登录验证时间为两分钟
#PermitRootLogin yes       允许root用户登录(安全考虑,这里可以设置为no,禁止root用户登录)
 
#MaxAuthTries 6             最大重试的次数为6
PasswordAuthentication yes   允许空密码用户登录
UseDNS  no                   禁止DNS反向解析,提高服务器的响应速度

2.白名单&黑名单

AllowUsers zhangsan lisi wangwu@192.168.80.128 允许张三李四王五在192.168.80.128地址登录
DenyUser zhangsan lisi wangwu@192.168.80.128 不允许张三李四王五在192.168.80.128地址登录

  • 白名单&黑名单权限大于root!!!!

3.存放ssh客户端的配置文件

/etc/ssh/ssh_config (该配置基本默认保持不变,就可以了)

[root@localhost7 ~]# ssh 192.168.73.110
 
exit  退出当前用户

在这里插入图片描述

[root@localhost7 ~]# ssh -p 22  zhangsan@192.168.73.110

在这里插入图片描述

三、ssh密钥登录操作

1.密码验证

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

2.秘钥对验证

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

公钥和私钥的关系:

  • 公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密。
  • 不能根据一个密钥来推算出另一个秘钥。
  • 公钥对外公开,私钥只有私钥的持有人才知道。
vim /etc/ssh/sshd config                                              #启用密码验证
Passwordnuthentication yesPubkeyAuthentication yesAuthorizedKeysFile  #启用密销对验证
.ssh/authorized keys                                                  #指定公钥库文件
  • 默认开启密码验证(需要绝对安全的话需要关掉密码验证)

3.ssh远程登录

使用 ssH 客户端程序
1.ssh 远程登录
ssh [选顶] zhangsan@192.168.80.10
1.当用户第一次登求SS日服务器时,必须接受服务器发来的BCDSA秘钥(根据提示输入"yes")后才能继续验证。
2.接收的密信息将保存到~/.ssh/knowihosts 文件中。
3.密码验证成功以后,即可登录目标服务器的命今行环境中了
防止钓鱼主机

-p: 指定非默认的端口号,缺省时默认使用 22端口ssh -p 2345 zhangsan@192.168.80.10

SCP 远程复制

scp传输文件

下行复制  
scp root@192.168.80.11:/etc/passwd /root/passwd10.txt  #将远程主机中的   /etc/passwd文件复制到本机
上行复制       
scp -r /etc/ssh/ root@192.168.80.10:/opt    #将本机的/etc/ssh 目录复制到远程主机a
#注意:有同名文件直接覆盖
  • scp [-r 目录] 文件 [用户]@服务端IP:保存路径(如果端口号修改过,就用-P进行指定)

[root@localhost6 opt]# scp shiyan.zip root@192.168.73.111:/opt

在这里插入图片描述
scp获取服务端的文件

  • scp [-P] [用户]@服务端IP:保存路径 本地路径

[root@localhost6 opt]# scp root@192.168.73.111:/opt/shiyan.zip /opt

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

SFTP获取服务端的文件

sftp 安全ETP
由于使用了加密/解密技术,所以传输效率比普通的ETP要低,但安全性更高。操作语法sftp与ftp几乎一样。

sftp zhangsan@192.168.80.10
Connecting to 192.168.80.10... 
tsengyia@172.16.16.22's password:   #输入密码
sftp>    ls文件名
sftp>    get文件名         # 下载文件到ftp目录
sftp>    put              #.上传文件到ftp目录
sftp>    quit             #退出

四、秘钥对的创建

1.在客户端创建密钥对
通过ssh-keygen工具为当前用户创建密钥对文件。可用的加密算法为RSA、ECDSA或DSA等(ssh-keygen命令的"-t"选项用于指定算法类型)。
useradd admin
echo “123123" passwd --stdin admin
su - admin

操作步骤

1.在客户端中创建密钥

[root@localhost6 ~]# ssh-keygen -t rsa
在这里插入图片描述
[zhangsan@localhost ~]$ cd /home/zhangsan/.ssh
[zhangsan@localhost .ssh]$ ls
在这里插入图片描述

2.把公钥文件导入到ssh服务端
方法一:手动导公钥进服务器

[zhangsan@localhost .ssh]$ scp id_rsa.pub root@192.168.73.111:/opt

在这里插入图片描述

切换到服务端,安置公钥

cd /opt/
ls
vim /root/.ssh/authorized_keys

在这里插入图片描述

末行模式
:!cat /opt/id_rsa.pub
在这里插入图片描述

方法二:自动导公钥入服务器(简便 好用!!!!)

[root@localhost2 ~]# ssh-copy-id -i 公钥文件 用户@服务端ip

//使用命令自动传送公钥文件,会自动生成authorized_keys文件
[root@localhost1 ~]#cd .ssh
[root@localhost1 .ssh]#ssh-copy-id -i id_dsa.pub root@192.168.116.20
 
//查看一下
[root@localhost2 ~]#cd .ssh
[root@localhost2 .ssh]#ls
authorized_keys  known_hosts
[root@localhost2 .ssh]#cat authorized_keys 
ssh-dss AAAAB3NzaC1kc3MAAACBAI9yxdO7V/W/ATYiSoKz4MbWZDRpE902lBpH0i5dmghNwWAxqV0DRMjetyvUc+R466NdXmp7N32ARuj+wEMNZ73g3FdurzkhwRmGi8RhR9obYkL3cqS34dmQvAWAlYmNYfqIg8Z2nv9KLwCrsnKfJDevlgmjpyj+Bxzx0smpIq/TAAAAFQDUYT4psdnG+JAUJfUhTCBz5AivsQAAAIAVLo/baTi/Z/xDod4N+bLwDYylsGKyWUuB8pTsMz/IPBH6KWPMWB62H9cO4rXhX2VQsKQXFBv77gqhpqzCB0iqQvc1DOHNXIp33tRlOvLntTYR02jduFnMtw9XyKjpIRaQmON3JY97liYL9zqP4Dd2RwSbPvSAhCPgWWL6lEX7awAAAIB8ad42MTdKzRVhZ3wu6KBmvn0LmeiX0NO5WQcPoOfwSqH7hCbhV2Dy+BfM3OklL6I3HesTajtuyLy6UBL83ayrvl8AXO0y7NCPOuZCm59YYXF8SE7pQz7JZBFyA9jTm9Ba4W0rrwHo3x1OkYXFd5LQowO71k/KKuWGQMGssR8Uiw== root@localhost1
 

TCP_Wrappers的运用

CP_wapper的工作原理

TCP_Wrappers有一个TCP的守护进程叫作tcpd。以ssh为例,每当有ssh的连接请求时,tcpd即会截获请求,先读取系统管理员所设置的访问控制文件,符合要求,则会把这次连接原封不动的转给真正的ssh进程,由ssh完成后续工作;如果这次连接发起的ip不符合访问控制文件中的设置,则会中断连接请求,拒绝提供ssh服务。

在这里插入图片描述

CP_wapper的基本原则

首先检查/etc/hosts.allow文件,如果找到相匹配的策略,则允许访问;否则继续检查/etc/hosts.deny文件,如果找到相匹配的策略,则拒绝访问;如果检查上述两个文件都找不到相匹配的策略,则允许访问。

  • "允许所有,拒绝个别”
    只需在/etc/hosts.deny文件中添加相应的拒绝策略
  • "允许个别,拒绝所有”
    除了在/etc/hosts.allow中添加允许策略之外,还需要在/etc/hosts.deny文件中设置"ALL:ALI"的拒绝策略。

TCP_Wrappers的运用

/etc/hosts.allow 设置允许访问 tcp 服务程序的策略(白名单)

/etc/hosts.deny 设置禁止访问 tcp 服务程序的策略 (黑名单)

实例

假设引用只允许IP地址为192.168.73.110的用户访问sshd服务,其他地址被拒绝。

白名单设置:

vim /etc/hosts.allow
sshd:192.168.73.110

在这里插入图片描述
如果不确定该服务是否符合TCP_wapper的标准:

[root@localhost ~]# ldd $(which sshd)|grep wrap

在这里插入图片描述
黑名单设置:

vim /etc/hosts.deny
sshd:ALL

在这里插入图片描述
保存后,立即生效

总结

telnet 明文传辅 tcp 23
ssh    密文传输 tcp 22

软件包openssh
服务名sshd
服务端配置文件 /etc/ssh/sshd config
重要的配智项: Port  ListenAddress
PermitRootLogin
UseDNs
DenvUsers
AllowUsers
PasswordAuthentication
PubkevAuthentication

客户端命令
ssh -p 端口 用户@IP
scp -P 端口 [-r] 本机文件/目录  用户@IP:绝对路径    #上行复制
scp -P 端口 [-r]户@IP:绝对路径  本机文件/目录      #下行复制
sftp -P 端口 用户@IP
get put cd ls


ssh 密钥对配置
客户端 ssh的发起端 : ssh-keygen -t rsa/ecdsa  创建密钥对,在自己家目录的.ssh目录中生成 私钥和公钥文件 (xxx.pub)目标主机用户

ssh-copy-id -i 公钥文件 目标主机用户@目标主机IP/主机名

服务端 被ssh连接   在指定用户家目录的.ssh目录中生成公钥认证文件 authorized_keys

从此 客户端使用 ssh-[p 端口] 用户@IP  使用密钥对进行验证

ssh 密钥对面交互登录
1.ssh-keygen -t rsa/ecdsa 一路回车 不设置密码
  ssh-copy-id -i 公钥文件 目标主机用户@目标主机IP/主机名 
2.创建ssh会话代理(只能在当前会话有效)
  ssh-agent bash
  ssh-add

TCP Wrappers 对支持TCP Wrappers的服务程序进行访问控制,要么允许放行,要么拒绝丢弃
判断是否支持
ldd $(which 程序名) sshd vsftpd telnet ipop3 imap httpd
    程序文件路径 libwrap .so.*
访问策略
先看 /etc/hosts.allow  有则放通
再看 /etc/hosts.deny   有则拒绝
如果都没有则放通所有

格式:
程序列表:
客户端列表 sshd,vsftpd:IP1,IP2,IP3,...




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

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

相关文章

nodejs+vue 校友录校友捐赠系统

校友录的设计与实现该系统面对的是用户和管理员,对于用户来说其最大的作用是在校友录的设计与实现前台查看校友活动、校友风采、校友捐赠、班级录、新闻中心、,其次进行交流园地。对管理员而言则是对用户、活动类型、校友活动、校友风采、校友捐赠、班级…

PCIE内核注册详解

代码结构 在Linux内核中,PCIe驱动程序的注册和处理涉及到许多文件,其中一些主要的文件包括: drivers/pci/pci.h:这个文件定义了PCIe驱动程序结构体和相关的函数。驱动程序需要包含这个头文件才能使用PCIe相关的函数和结构体。 d…

【观察者设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

简介 观察者模式(Observer Pattern)是一种行为型模式。它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 观察者模式使用三个类Subject、Observer和Client。Subject…

ChatGPT热中的冷思考

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和…

taro之项目初始化模版

项目初始化模板 一直以来,在使用 Taro CLI 的 taro init 命令创建项目时,CLI 会提供若干内置模板给开发者选择。但是很多团队都有自己独特的业务场景,需要使用和维护的模板也不尽一致,因此 Taro 支持把项目模板打包成一个能力赋予…

思科模拟器 | 生成树协议STP、RSTP、HSRP配置

一、生成树协议STP 概念介绍: 生成树协议是一种网络协议,用于在交换机之间建立逻辑上的树形拓扑结构避免产生环路。为了完成这个功能,生成树协议需要进行些配置,包括根桥的选举、端口的状态切换等。 步骤明细: 使用思…

itop-3568 开发板系统编程学习笔记(21)PWM 应用编程

【北京迅为】嵌入式学习之Linux系统编程篇 https://www.bilibili.com/video/BV1zV411e7Cy/ 个人学习笔记 文章目录 在设备树打开 PWMsysfs 方式控制 PWMPWM 应用编程 在设备树打开 PWM RK3568 有 16 个 PWM 控制器,本文件将以 PWM0 为例进行实验,为什么…

如何在PowerShell中查找、添加、修改和删除环境变量:解决手动设置环境变量后报命令失效的问题

简介 PowerShell是Windows平台上的一种命令行工具,它可以方便地查找、添加、修改和删除环境变量。在本文中,LZ将介绍如何在PowerShell中进行这些操作。 查找环境变量 在PowerShell中查找环境变量非常简单。只需要使用Get-ChildItem命令,以…

LED驱动 中断

1、用字符设备驱动框架和平台设备驱动框架实现LED驱动 1.1 用字符设备驱动框架-----》led2 控制led2闪烁 1.应用层: 1 open(“/dev/haha0”) 2 while(1) ioctl(fd,LED_ON)&#xff…

java的社区养老服务系统 ssm空巢老人

创新点: 1、根据时间、类型统计用户下单记录,形成可视化图形(饼状图) 2、根据用户爱好推荐项目 包含模块:关于我们、联系我们、外链信息、资讯类型、服务资讯、服务类型、服务项目、案例类型、服务案例、讨论类型、讨论…

引入Tuning function design的自适应反步控制方法 上篇

引入Tuning function design的自适应反步控制方法 上篇 目录 引入Tuning function design的自适应反步控制方法 上篇尝试用推迟参数设计解决高阶不匹配系统的控制器设计问题问题描述控制器设计小结上一篇文章写了如何通过推迟参数设计的方法来解决不匹配条件下的系统反步控制设…

【原型设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

简介 原型模式(Prototype Pattern)是一种创建型设计模式,使你能够复制已有对象,而无需使代码依赖它们所属的类,同时又能保证性能。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创…

IT项目管理之软件测试

1. 定义 软件测试是使用人工或者自动的手段来运行或者测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 在软件投入使用前,要经过一系列的严格测试,才能保证交付质量。 2. QC & QA &a…

会声会影导入视频是黑色的 会声会影导入视频只有声音

会声会影是一款功能很成熟的视频编辑软件,其友好的界面设计能照顾到初学者的需求,同时配置的强大功能可满足进阶者的需要。不过由于或硬件或软件的原因,可能会出现会声会影导入视频是黑色的,会声会影导入视频只有声音的问题。本文…

Docker的实际应用

一、 数据持久化 我们什么情况下要做数据持久化呢? 一定是在做容器之前先预判好哪些文件是要永久存储的, 而不会跟着它容器的一个生命周期而消失。 比如说配置文件、 日志文件、 缓存文件或者应用数据等等。 数据初始化有三种类型。 第一种 volumes&…

浏览器缓存策略:强缓存和协商缓存

浏览器缓存:其实就是在本地使用的计算机中开辟一个内存区,同时也开辟一个硬盘区,作为数据传输的缓冲区,然后利用这个缓冲区来暂时保护用户以前访问的信息通常浏览器的缓存策略分为两种:强缓存和协商缓存,强…

Vmware 搭建 Bitnami GitLab CE

Vmware 搭建 Bitnami GitLab CE 下载 Bitnami GitLab CE导入到 Vmwaressh 登录到虚拟机获取 root 用户密码访问 GitLab CE关机命令扩展磁盘配置 tls 证书安装 GitLab Runner注册 GitLab Runner其他,配置 docker 信任自签名证书 下载 Bitnami GitLab CE 下载地址&am…

Photoshop如何使用基础功能?

文章目录 0.引言1.菜单栏2.工具箱 0.引言 笔者从开始科研时就接触过Photoshop(PS),这么多年一直用着感觉有些陌生,在每次使用PS时总感觉有些抵触,这状态说明还未入门。为了入门PS,笔者从头熟悉PS的菜单和工…

一文弄懂Jupyter的配置与使用(呕心沥血版)

Jupyter 是一个基于 Web 的交互式计算平台,使用户能够创建和共享文档,这些文档包含实时代码、方程式、可视化图表和解释文字。Jupyter 在数据分析领域被广泛应用,它提供了一个直观、交互式的操作界面,使得用户能够更容易地探索数据…

MybatisPlus入门和分页和条件查询里面的条件和null值的处理方式和查询投影和查询条件设置

MybatisPlus 简化了mybatis之前的在springboot整合MyBatis时需要自己写sql语句在接口中&#xff0c;现在只需要让接口继承BaseMapper<实体类>&#xff0c;然后在测试类中接口.增删改查方法&#xff08;&#xff09;即可 不用像springboot整合mybatis一样勾选spring web…