linux的SSH(远程登录)服务

目录

1.SSH远程管理

1.1 SSH的概述

1.2 OpenSSH服务器

1.3 SSH端口、配置文件

2.服务端重要配置

3.登录验证方式

3.1 密码验证

3.2 密钥对验证

4.使用 SSH 客户端程序

4.1 ssh 远程登录

4.2 scp 远程复制 

4.3 sftp文件传输

5.创建使用密钥对

6.TCP Wrappers访问控制

6.1 概念

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

6.3 TCP Wrappers 机制的访问原则


1.SSH远程管理

1.1 SSH的概述

SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。
SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令。因此SSH协议具有很好的安全性。
远程链接的两种方法:SSH   、Telnet

1.2 OpenSSH服务器

SSH客户端:Putty、Xshell、CRT、MobaXterm
SSH服务端:OpenSSH

OpenSSH是实现SSH协议的开源软件项目,适用于各种UNIX、 Linux操作系统。Centos 7系统默认已安装OpenSSH相关软件包,并将sshd 服务添加为开机自启动。

1.3 SSH端口、配置文件

sshd服务默认使用TCP的22端口。

sshd服务的默认配置文件是/etc/ssh/sshd_config。

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

2.服务端重要配置

sshd服务使用的默认端口号为22,必要时建议修改此端口号,并指定监听服务的具体IP地址,以提高在网络中的隐蔽性。除此之外,SSH协议的版本选用V2比V1的安全性更好,禁用DNS反向解析可以提高服务器的响应速度。

vim /etc/ssh/sshd_config进入

当希望只允许或禁止某些用户登录时,可以使用AllowUsers或DenyUsers配置,两者用法相似(注意不要同时使用)。

3.登录验证方式

3.1 密码验证

以服务器中本地系统用户的登录名称、密码进行验证。这种方式使用最为简便,但从客户机角度来看,正在连接的服务器有可能被假冒;从服务器角度来看,当遭遇密码穷举(暴力破解)攻击时防御能力比较弱。

3.2 密钥对验证

要求提供相匹配的密钥信息才能通过验证。通常先在客户机中创建一对密钥文件(公钥、私钥),然后将公钥文件放到服务器中的指定位置。远程登录时,系统将使用公钥、私钥进行加密/解密关联验证,大大增强了远程管理的安全性,且可用免交互登录。
公钥和私钥的关系:
●公钥和私钥是成对生成的,这两个密钥互不相同,可以互相加密和解密。
●不能根据一个密钥来推算出另一个密钥。
●公钥对外公开,私钥只有私钥的持有人才知道。

4.使用 SSH 客户端程序

4.1 ssh 远程登录

ssh [-p 端口] 用户名@目标主机ip
-p:指定非默认的端口号,缺省时默认使用 22端口

ssh [-p 端口] 用户名@目标主机ip 命令
通过ssh命令登录到远程主机,执行完该命令后立即退出

4.2 scp 远程复制 

将目标主机的文件/目录复制到本机
scp [-P 端口]  (-r 复制目录情况下)用户@目标主机ip:目标路径文件 指定存放路径
于192.168.9.120中操作:复制192.168.9.110位置下/opt/qwe.txt文件到192.168.9.120位置下/opt目录

将本地文件/目录复制到指定主机
scp  [-P 端口] (-r 复制目录情况下)本地文件 用户@目标主机ip:目的路径
于192.168.9.120中操作:复制192.168.9.120位置下/opt/tan.txt文件到192.168.9.110位置下/opt/目录

4.3 sftp文件传输

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

sftp [-P 端口] 用户@目标主机ip
get下载,put上传

交互方式实现文件的上传下载


5.创建使用密钥对

ssh密钥对免交互登录两种方法

1.使用空密码的密钥对

2.创建ssh会话代理(只能在当前会话中有效)

6.TCP Wrappers访问控制

6.1 概念

TCP Wrappers(TCP封套) 是一个简单的防火墙机制。用来将TCP服务程序“包裹”起来,代为监听TCP服务程序的端口,增加了一个安全检测过程,外来的连接请求必须先通过这层安全检测,获得许可后才能访问真正的服务程序。
大多数 Linux 发行版,TCP Wrappers 是默认提供的功能。rpm -q tcp_wrappers

如何判断是否支持 TCP Wrappers:执行命令 ldd $(which c程序名称) | grep libwrap

$()作用:提取括号内命令的结果

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

1.直接使用 tcpd 程序对其他服务程序进行保护,需要运行 tcpd 程序。
2.由其他网络服务程序调用 libwrap.so.* 动态函数库,不需要运行 tcpd 程序。此方式的应用更加广泛,也更有效率。

访问策略

  • TCP Wrappers 机制的保护对象为各种网络服务程序,针对访问服务的客户端地址进行访问控制。

  • 对应的两个策略文件为/etc/hosts.allow 和/etc/hosts.deny,分别用来设置允许和拒绝的策略

格式
<服务程序列表>:<客户端地址列表>

(1)服务程序列表
ALL:代表所有的服务。
单个服务程序:如“vsftpd”。
多个服务程序组成的列表:如“vsftpd,sshd”。
(2)客户端地址列表
ALL:代表任何客户端地址。
LOCAL:代表本机地址。
多个地址以逗号分隔

允许使用通配符 “*” 和 “?” ,前者代表任意长度字符,后者仅代表一个字符
网段地址,如 “192.168.80.” 或者 192.168.80.0/255.255.255.0 (掩码只支持 netmask 的地址显示方式)
区域地址,如 “.benet.com”匹配 benet.com 域中的所有主机。
 

6.3 TCP Wrappers 机制的访问原则

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


2.“允许所有,拒绝个别”
只需在/etc/hosts.deny文件中添加相应的拒绝策略

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

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

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

相关文章

CLIP论文笔记:Learning Transferable Visual Models From Natural Language Supervision

导语 会议&#xff1a;ICML 2021链接&#xff1a;https://proceedings.mlr.press/v139/radford21a/radford21a.pdf 当前的计算机视觉系统通常只能识别预先设定的对象类别&#xff0c;这限制了它们的广泛应用。为了突破这一局限&#xff0c;本文探索了一种新的学习方法&#x…

机器学习之sklearn基础教程

Scikit-learn&#xff08;简称sklearn&#xff09;是一个广泛使用的机器学习库。 1. **安装sklearn**&#xff1a;推荐使用Anaconda进行安装&#xff0c;以避免配置和环境问题。也可以直接通过pip命令安装&#xff1a;pip install scikit-learn。 2. **数据集生成**&#xff1…

如何在 CentOS VPS 上配置 vsftpd 使用 SSL/TLS

介绍 FTP&#xff08;文件传输协议&#xff09;是一种在本地和远程服务器之间传输文件的方式。尽管非常流行和普遍&#xff0c;但由于其设计中固有的安全性缺失&#xff0c;使用这种文件传输方法已经不再受欢迎。 一个非常有能力的替代方案是SFTP&#xff0c;如上所述。该协议…

conda修改当前环境中的python版本

1. 首先查看当前的python版本 python -V 2. 进入已经激活的conda环境&#xff0c;搜索库中有无想要的python版本(若有想安装的版本可跳过) conda search --full --name python 3. 安装库中存在且符合要求的python版本即可(以python3.8.1为例) conda install python3.8.1

深度学习的模型转换(.pt转换为.engine)

缘由 最近观察发现,深度学习的例子有很多,但是模型的转换总是有很多问题,没有一个标准的转换方法。有的是直接用YOLO里面自带的export.py进行转换,也有的人利用TensorRT里面的bin文件夹的trtexec.exe转换,结果两种转换之后的格式不一样。所以最近就整理了网上的转换办法,…

springboot WebSocket的用法

Spring Boot中使用Java API创建WebSocket 添加WebSocket的依赖项 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dependency>创建WebSocket端点 import javax.webs…

sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

Linux线程(pthread)概念以及编程

pthread 线程的意思 1.简的来说&#xff0c;线程的概念就是在一个程序中&#xff0c;同时进行多个函数的运行比如以下代码 2.要引入头文件#include <pthread.h> ; 线程被调函数的定义是空指针类型的如&#xff1a; void *func1() 在main函数中&#xff0c;pthread_cre…

【软件】ERETCAD-Env:在轨空间环境3D动态仿真软件

文章介绍了Extreme-environment Radiation Effect Technology Computer-Aided Design – Environment (ERETCAD-Env)软件&#xff0c;文章的介绍和展示了ERETCAD-Env软件的功能和特点&#xff0c;这是一款用于动态模拟在轨卫星所处空间环境的计算机辅助设计软件。强调了该软件在…

Rust异步并发编程tokio异步运行时讲解和使用,新手必学

Rust 在v1.39版本以后就引入了async关键字&#xff0c;用于支持异步编程。 async fn foo() {}Rust中&#xff0c;async函数或块会被视作一个 Future 对象&#xff0c;async 关键字只是用来定义这个 Future 对象&#xff0c;定义好的这片异步代码并不会自动执行&#xff0c;而是…

c语言指针的应用场景

​ 1.什么是指针&#xff1f; 当我们提起指针的时候&#xff0c;可能第一反应会露出惊喜的表情 &#xff08;但是我们其实没必要那么慌&#xff0c;因为当我们随着我们学习的越来越深入就会发现&#xff0c;指针虽然看起来难&#xff0c;实际上也不怎么简单。哈哈哈开玩笑的&a…

macos vscode 激活虚拟环境

用 source activate activate的路径报错 解决&#xff1a;cd到activate下的文件下 直接source activate 解决 (base) dearrdearrdeMacBook-Air 时序作业 % /Applications/文件/派森/时序作业/.venv/bin/activat zsh: no such file or directory: /Applications/文件/派森/时…

TCN-LSTM时间卷积网络长短期记忆网络多输入多输出回归预测

文章目录 效果一览文章概述 订阅专栏只能获取一份代码部分源码参考资料 效果一览 文章概述 TCN-LSTM时间卷积网络长短期记忆网络多输入多输出回归预测 matlab2021 订阅专栏只能获取一份代码 部分源码 %------------------------------------------------------------------…

c# winform打包

本次采用vs2022打包winform窗体应用&#xff0c;有时应用不需要打包为安装应用&#xff0c;执行一个EXE就运行了 测试了几次&#xff0c;winform 非.net Framework 和控制台程序也是非.net Framework项目能打包这种&#xff0c;后续在研究

JS中的深拷贝实现方式

在JS中&#xff0c;对象的复制是常见的操作&#xff0c;但有时候我们需要的不仅仅是简单的浅拷贝&#xff0c;而是深度拷贝&#xff0c;即复制对象以及它的所有子对象。这就涉及到了深拷贝的概念。深拷贝与浅拷贝的主要区别在于&#xff0c;深拷贝会复制对象及其所有的子对象&a…

边缘计算在视频监控领域的应用

一、边缘计算在视频监控领域的应用 运用边缘计算解决视频监控问题&#xff0c;可以带来许多优势。以下是一些具体的应用示例&#xff1a; 实时分析与处理&#xff1a;在视频监控系统中&#xff0c;边缘计算盒子可以实时处理和分析视频流&#xff0c;实现对监控画面的智能识别…

强化学习和深度学习的差异对比

当你在玩一款视频游戏时&#xff0c;你是如何学习的&#xff1f;你尝试不同的策略&#xff0c;看哪个会让你获得更高的分数。强化学习就像是让机器学会玩游戏&#xff0c;只不过它是通过尝试不同的动作&#xff0c;接收游戏给予的奖励或惩罚来学习的。 想象一下你在学习认识动物…

STM32H7 HSE时钟的使用方法介绍

目录 概述 1 STM32H750 HSE时钟介绍 2 使用STM32Cube创建Project 3 认识HSE时钟 3.1 HSE时钟的特性 3.2 HSE的典型应用电路 4 STM32Cube中配置时钟 4.1 时钟需求 4.2 配置参数 4.2.1 使能外围资源 4.2.2 使用STM32Cube注意项 4.2.3 配置参数 5 总结 概述 本文主要…

IBM SPSS Statistics for Mac v27.0.1中文激活版:强大的数据分析工具

IBM SPSS Statistics for Mac是一款功能强大的数据分析工具&#xff0c;为Mac用户提供了高效、精准的数据分析体验。 IBM SPSS Statistics for Mac v27.0.1中文激活版下载 该软件拥有丰富的统计分析功能&#xff0c;无论是描述性统计、推论性统计&#xff0c;还是高级的多元统计…

【c++每天一题】 快速幂

快速冥 描述 输入 b,p,k 的值&#xff0c;求 bp mod k的值。其中 b,p,k 为长整型数。 输入描述 输入 b,p,k 的值。 输出描述 求 bp mod k 的值。 样例输入 1 2 10 9 样例输出 1 7 代码&#xff1a; #include<bits/stdc.h> using namespace std; //求a的b次方%k的结果 …