ssh远程登录协议 搞定远程访问控制

远程管理linux系统基本上都要使用到ssh,原因很简单:telnet、FTP等传输方式是以明文传送用户认证信息,本质上是不安全的,存在被网络窃听的危险。SSH(Secure Shell)目前较可靠,是专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题,透过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。

一、SSH远程管理

1.什么是SSH服务器?

SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为建立在应用层和传输层基础上的安全协议。对数据进行压缩,加快传输速度。

ssh协议是基于C/S机构(基于客户端-服务器模型设计),主要目的是为用户提供数据加密、身份验证以及消息完整性检查等功能,确保用户能够在网络上安全地访问另一台计算机。

什么是c/s架构?有客户端和服务端

2.ssh优点

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

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

ssh软件包     ssh协议      端口(默认Tcp的22号端口)

openssh  centos7  上自带的软件 帮助我们实现远程连接

ssh:可以远程连接   scp sftp rsync:远程传输文件

sshd 服务默认使用的是TCP的22端口sshd服务的默认配置文件是/etc/ssh/sshd_config

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

Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动。

3.SSH客户端( Client)与服务端客户端:

客户端:

  • Linux 客户端: ssh, scp, sftp,slogin
  • Windows 客户端:xshell, MobaXterm,putty, securecrt, ssh secure shell client

服务端:

  • SSH服务端:OpenSSH (开源)
  • ssh服务端主要包括两个服务功能:ssh远程连接和sftp服务(文件传输功能)

作用:SSHD 服务使用 SSH 协议可以用来进行远程控制,或在计算机之间传送文件。 相比较之前用 Telnet 方式来传输文件要安全很多,因为 Telnet 使用明文传输,SSH 是加密传输

服务名称:sshd
服务端主程序:/usr/sbin/sshd  
服务端配置文件:/etc/ssh/sshd_config 
客户端配置文件:/etc/ssh/ssh_config

openssh  centos7  上自带的软件 帮助我们实现远程连接

OpenSSH 常用配置文件有两个/etc/ssh/ssh_config 和/etc/sshd_config。
ssh_config:为客户端配置文件,设置与客户端相关的应用可通过此文件实现
sshd_config:为服务器端配置文件,设置与服务端相关的应用可通过此文件实现

4.ssh原理

(1)公钥传输原理   

首次连接时公钥交换:

  • 客户端发起链接请求

  • 服务端返回自己的公钥,以及一个会话ID(这一步客户端得到服务端公钥)

  • 客户端生成密钥对

  • 客户端用自己的公钥异或会话ID,计算出一个值Res,并用服务端的公钥加密

  • 客户端发送加密值到服务端,服务端用私钥解密,得到Res

  • 服务端用解密后的值Res异或会话ID,计算出客户端的公钥(这一步服务端得到客户端公钥)

  • 最终:双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都会被加密

最后双方各自持有三个秘钥,分别为自己的一对公、私钥,以及对方的公钥,之后的所有通讯都会被加密。公钥可任意分发但不能用于解密,私钥只有所有者持有且可用于解密由相应公钥加密的数据,从而保证了密钥交换的安全性。

(2)ssh加密通讯原理

对称加密

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。

非对称加密

概念   非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

原理 首先ssh通过加密算法在客户端产生密钥对(公钥和私钥),公钥发送给服务器端,自己保留私钥,如果要想连接到带有公钥的SSH服务器,客户端SSH软件就会向SSH服务器发出请求,请求用联机的用户密钥进行安全验证。SSH服务器收到请求之后,会先在该SSH服务器上连接的用户的家目录下

优缺点 相比于对称加密技术,非对称加密技术安全性更好,但性能更慢。

5.ssh内容介绍

Centos 7系统默认已安装openssh相关软件包,并将sshd 服务添加为开机自启动。

服务名称叫做sshd,软件包名称叫openssh

第一次和服务端机器连接时,会询问是否要验证公钥,同意或后就会自动获取服务端的公钥

1.登录:
第一次登录

小技巧:

旧的机器挂了,新的机器mac地址变了,密钥变了

将之前的密钥文件删除,在重新生成一个,就对应了。

多次登录

登录:

ssh -l [远程主机用户名] [远程服务器主机名或IP 地址] -p port
-l :指定登录名称、登录用户名
-p:指定登录端口(当服务端的端口非默认时,需要使用-p 指定端口进行登录)
-t

2.连接指定用户

连接指定用户    ssh  -l   用户名    ip地址

ssh  -l root 192.168.246.8

3.直接跟上命令远程操作 

直接跟上命令远程操作       格式: ssh   ip地址    想使用的命令

ssh  192.168.246.8 命令

我们登录时,怎么确认是不是我需要连接的服务器?

先连接自己得出的结果,对比一下,连接对面的结果,是否一致,一致的话,就是我们要连接的服务器

192.168.91.101先连接下自己,对比下结果是否一样,一致的话,就是我们要连接的服务器

4.指定端口号

格式:  ssh    ip地址     -p    端口号

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

#修改默认端口
[root@localhost ssh]#vim  /etc/ssh/sshd_config
#17 行修改自己默认的端口
17 Port 9527

首先进入服务端192.168.246.8

再使用客户机(192.168.246.7)去连接就需要指定端口号了

5.跳板机 
[root@localhost .ssh]#iptables -A INPUT -s 192.168.91.102 -j REJECT 
#模拟防火墙
[root@localhost ~]# ssh -t 192.168.91.101  ssh -t 192.168.91.102  ssh 192.168.91.103
#方便跳板连接

6.禁止root用户登录
[root@localhost ssh]#vim  /etc/ssh/sshd_config
#开启38 行 并改为 no,默认注释并写的yes
38 PermitRootLogin no
#注意虽然阻止了root 但是普通用户可以使用su
[root@localhost1 ~]#ssh zhangsan@192.168.91.100 -p 9527
zhangsan@192.168.91.100's password: 
Last login: Fri Aug 27 16:50:35 2021
[zhangsan@localhost2 ~]$ 
[zhangsan@localhost2 ~]$ su root
密码:
[root@localhost2 zhangsan]#

修改 pam认证模块
[root@localhost ssh]#vim /etc/pam.d/su
#开启第6行,默认注释
6 auth            required        pam_wheel.so use_uid
7.白名单黑名单列表

白名单:默认拒绝所有,只有白名单上允许的人才可以访问

黑名单:默认允许所有,只有黑名单上的用户才不允许访问

(白名单优先级高,但一般不会同时使用白名单和黑名单,白名单使用会多一点)

白名单:不设置白名单所有用户都可以登录访问,设置了白名单后,只有白名单内的用户登录,其余任何用户都不可以登录

白名单:默认拒绝所有,只有白名单上允许的人才可以访问

我们进入服务端(192.168.246.8)进行编辑

验证:进入192.168.246.9客户机进行验证

进入客户机192.168.246.7进行验证:

黑名单:默认允许所有,只有黑名单上的用户才不允许访问

进入服务端192.168.246.8进行配置:

进入客户机192.168.246.7验证:

进入客户机192.168.246.9验证:

二、ssh服务的最佳实践

建议不使用默认端口 22

禁止使用protocol version 1

限制可登录用户 白名单

设定空闲会话超时时长

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

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

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

使用基于密钥的认证

禁止使用空密码

禁止root用户直接登录

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

经常分析日志 分离

如果有一天登录ssh变得非常非常慢,请禁用反向解析

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

免密连接原理 

第一步:手动添加客户端的公钥到服务端

第二步:服务端收到客户端的公钥后使用客户端公钥加密一串随机字符串发送给客户端

第三步:客户端收到服务端发送的加密的随机字符串使用自己的私钥解密返回给服务端进行验证

第四步:服务端验证客户端发送来的随机字符串一致则同意建立连接

在客户端(192.168.246.7)生成秘钥文件

将秘钥发送给服务器

验证免密登录

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

走迷宫(c语言)

前言&#xff1a; 制作一个迷宫游戏是一个有趣的编程挑战。首先&#xff0c;我们需要设计一个二维数组来表示迷宫的布局&#xff0c;其中每个元素代表迷宫中的一个格子。我们可以使用不同的值来表示空格、墙壁和起点/终点。接下来&#xff0c;我们需生成迷宫。在生成迷宫的过程…

智能手表喇叭无气孔导致老化播放后没声音

智能音箱喇叭老化播放后没声音 智能手表要做防水&#xff0c;在外壳上打了防水胶&#xff0c;结果出现播放突然没声音的现象&#xff0e; 原因 一直播放&#xff0c;设备温度升高&#xff0c;因为做了防水密闭导致喇叭腔体气压异常&#xff0c;导致播放没声音&#xff0e; …

nginx入门学习

nginx简介 nginx 是什么?用来干嘛的 通俗解释&#xff1a;客户端向服务器请求时&#xff0c;提供让多个服务器一起处理请求的东西 是一个反向代理服务器&#xff0c;能够提供负载均衡&#xff0c;和进行反向代理的功能 正向代理&反向代理 客户端向代理服务器请求&#…

短剧分销系统,助力短剧市场发展,实现短剧收益

近几年来&#xff0c;我国短剧兴起&#xff0c;在经过几年的蓄力后迎来了爆发期&#xff0c;短剧市场规模一路狂飙&#xff01;短剧拥有节奏快、剧情“爽”的优势&#xff0c;成功占领了各大观众的碎片化时间&#xff0c;短剧已经成为了影视行业的新力量&#xff0c;也成为了当…

微服务概述之微服务特性

前言 既然系统采用了微服务架构&#xff0c;就需要了解一些微服务的特性&#xff0c;这样在进行微服务开发时&#xff0c;脑海中才会有一些指导方向。微服务具有以下特性。 1. 服务组件化 组件是独立、可替换、可升级的软件的单元。将整体应用拆分成独立的服务组件后&#xff…

嵌入式软件开发对硬件知识的掌握要求要多高?

嵌入式软件开发对硬件知识的掌握要求要多高&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff0…

并发编程(一)线程基础知识与线程控制

进程与线程 进程&#xff1a;如任务管理器中各种程序叫做正在运行的进程。对于操作系统来说&#xff0c;仅仅是一个数据结构&#xff0c;并不真实的执行代码 线程&#xff1a;真实执行代码的 每个进程启动的是时候会同步启动一个主线程即main函数&#xff0c;当main函数结束…

倒F天线设计经验分享

一、IFA天线理论分析 为了改善&#xff29;&#xff2c;&#xff21;天线难以使用的缺点&#xff0c;在&#xff29;&#xff2c;&#xff21;天线的基础上再增加一个倒L结构&#xff0c;形成IFA天线&#xff0c;此种天线体积小、易于匹配并具有双极化的特点&#xff0c;而在蓝…

帆软报表11.0.19增加postgres数据源方案

项目使用postgres数据库&#xff0c;帆软报表集成开发时需要手工增加该数据源。 https://help.fanruan.com/finereport/doc-view-2563.html 但增加数据源后测试报告无此驱动&#xff0c;经查看文档&#xff0c;现在是通过驱动管理来上传&#xff0c; 但新版又不允许上传驱动JAR…

外贸群发邮件最好的软件?群发软件哪个好?

外贸开发信群发软件推荐&#xff1f;做外贸用什么邮件群发软件&#xff1f; 在外贸业务中&#xff0c;与潜在客户建立联系并保持沟通是至关重要的。那么&#xff0c;如何快速有效地发送邮件给大量的潜在客户呢&#xff1f;这就涉及到了外贸群发邮件。蜂邮EDM来探讨一下&#x…

presto/trino 入门介绍实战

引言 Presto是一款分布式SQL查询引擎&#xff0c;它能够在大规模数据集上实现快速、交互式的查询。本文将介绍Presto的基本概念并结合一些实际的代码示例&#xff0c;能够让的大家快速入门并在实际项目中应用。 官网&#xff1a;Launch Presto: Local download, JDBC, Docker…

11.云原生分布式数据库之TIDB

云原生专栏大纲 文章目录 为什么使用TIDB后端视角运维视角基础架构视角 TiDB Operator 简介软件版本要求部署tidbTIDB工具helm常用命令TIDB学习推荐资料 为什么使用TIDB 从后端视角、运维视角和基础架构视角来看&#xff0c;使用 TiDB 作为数据库系统可以获得分布式架构、高可…

目标检测应用场景—数据集【NO.25】牛行为检测数据集

写在前面&#xff1a;数据集对应应用场景&#xff0c;不同的应用场景有不同的检测难点以及对应改进方法&#xff0c;本系列整理汇总领域内的数据集&#xff0c;方便大家下载数据集&#xff0c;若无法下载可关注后私信领取。关注免费领取整理好的数据集资料&#xff01;今天分享…

云原生微服务之分布式锁框架 Redisson

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 系列专栏目录 [Java项目…

动物多指标生理监测:ZL-019A大小鼠饮食饮水监测系统

ZL-019A大小鼠饮食饮水监测系统是一款能够实时监测和分析动物的饮食、饮水、站立、活动量和活动轨迹等行为和代谢过程的智能系统。 本系统旨在定期测量实验动物的饮食饮水摄入行为&#xff0c;用户可根据需要自定义测量时间。通过定期测量&#xff0c;研究者无需再费心记录单个…

代码随想录 Leetcode454. 四数相加 II

题目&#xff1a; 代码 (首刷看解析 2024年1月15日&#xff09;&#xff1a; class Solution { public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {int n nums1.size();u…

【干货】数字化工厂常见术语合集

本文将为大家介绍一些行业通俗名称&#xff0c;希望对于从事“数字工厂”行业的朋友以及正在求职的朋友们有所助益。 数字化工厂&#xff08;"Digital factory"&#xff0c;简写为"DF"&#xff09;&#xff1a;是指利用先进的信息技术和数字化解决方案&am…

关于如何禁用、暂停或退出OneDrive等操作,看这篇文件就够了

​想知道如何禁用OneDrive?你可以暂停OneDrive的文件同步,退出应用程序,阻止它在启动时打开,或者永远从你的机器上删除该应用程序。我们将向你展示如何在Windows计算机上完成所有这些操作。 如何在Windows上关闭OneDrive 有多种方法可以防止OneDrive在你的电脑上妨碍你。…

AI自动写文章的软件有哪些?分享五款实用的

据相关数据统计&#xff0c;AI自动写文章的软件逐渐成为了现实。这些写作软件利用强大的自然语言处理和机器学习算法&#xff0c;能够自动生成文章&#xff0c;为写作工作提供了极大的便利。在本文中&#xff0c;我将向大家介绍五款实用的AI自动写文章的软件&#xff0c;一起来…

打破效率瓶颈:运用Excel提升文秘与行政工作质量

文章目录 一、数据整理二、数据分析三、报表制作四、图表展示五、模板应用六、宏编程七、安全与隐私《Excel高效办公&#xff1a;文秘与行政办公&#xff08;AI版&#xff09;》编辑推荐内容简介作者简介目录获取方式 在现代企业中&#xff0c;文秘与行政办公人员的工作内容繁杂…