SSH远程连接服务详解

news2024/11/26 12:27:25

远程连接服务器

一,远程连接服务器简介

1、什么是远程连接服务器

 远程连接服务器通过文字或图形接口方式来远程登录系统,让你在远程终端前登录

 linux 主机以取得可操作主机接口(shell),而登录后的操作感觉就像是坐在系统前

 面一样。

2、远程连接服务器的功能

分享主机的运算能力

服务器类型:有限度开放连接

工作站类型:只对内网开放

3、远程连接服务器的类型(以登录的连接界面来分类)

文字接口

明文传输:Telnet、RSH 等,目前非常少用

加密传输:SSH 为主,已经取代明文传输

图形接口:XDMCP、VNC、XRDP 等

 4、文字接口连接服务器

SSH(Secure Shell Protocol,安全的壳程序协议)它可以通过数据包加密技术将等

待传输的数据包加密后再传输到网络上。ssh 协议本身提供两个服务器功能:一个是

类似 telnet 的远程连接使用 shell 的服务器;另一个就是类似 ftp 服务的 sftp- server,

提供更安全的 ftp 服务。

 

 

二,连接加密技术

 

1,对称加密:使用同一个秘钥进行加密解密

      缺点:不够稳定

      优点:效率高

2,非对称加密;使用不同的秘钥进行加密解密

      非对称加密:产生一密钥:公钥(给别人)和私钥(给自己)

      用公钥加密的只能用私钥解密

3,两种加密方式存在的问题

      对称加密的问题: 如何保证密钥的安全

      非对称加密的问题:如何确保服务器的身份

      ssh服务使用对称加密来传输数据,使用非对称加密来进行连接

4,SSH 工作过程:在整个通讯过程中,为实现 SSH 的安全连接,服务端与客户端要

      经历如下五个阶段:

<1>,版本号协商阶段:ssh目前包括ssh1和ssh2两个版本,双方通过版本协商确定使用的版本

Client:SSH-2.0-OpenSSH_for_Windows_8.1

server:SSH-2.0-OpenSSH_8.0

<2>,秘钥和算法协商阶段

算法协商

Client:key exchange init

Server:key exchange init

秘钥计算:

Client: key exchange init

Server: ecdh key  exchange reply ,new keys, encrypted packet

秘钥协商阶段(session-key)

7 %2取余  其中的2为模数

2^3次方   2为基数

张三和李四沟通的基础: 模数:p, 基数:g

张三和李四要进行沟通了:

张三先要想好一个私钥a, 产生公钥:A = g^a mod p, 张三将公钥A交给李四

李四先想好一个私钥b, 尝试公钥: B = g^b mod p,  李四将公钥交给张三

到目前为止:张三拿到了李四的公钥B,以及自己的公钥A, 私钥a

                   李四拿到了张三的公钥A,以及自己的公钥B,私钥b

然后张三和李四各自根据ecdh算法进行计算:

k1 = B^a mod p

k2 = A^b mod p

如果k1=k2: 就产生了一个安全的密钥key=k1=k2

>>> p=83

>>> g=8

>>> a=9

>>> b=21

>>> A=g**a % p

>>> A

5

>>> B=g**b % p

>>> B

18

>>> k1=B**a % p

>>> k2=A**b % p

>>> k1

24

>>> k2

24

key=k1=k2=24

 

<3>,认证阶段(最终要阶段)

(1)基于口令的认证

第一次登录会把这些信息记录在known_hosts文件中,下次登录就会与文件中的秘钥进行对比,相同直接登录;自己认为可靠输入yes连接   

    Win + r 输入cmd

    ssh  root@192.168.206.131

 

在客户端用户下面的.ssh目录中找known_hosts文件并删除掉

 

删除文件后, 再次连接,将会显示提示信息

(2)基于秘钥的认证(免密登录)

三,有关免密登录的配置 

配置一:

1,  打开xshell,点击工具,新建用户秘钥生成向导 

  点击下一步

点击下一步

2,输入并确认密码

3,将此文件保存下来备用

 

4,点击完成,会自动生成此秘钥

 

5,连接linux,创建~/.ssh/目录

6,在此目录使用命令vim authorized_keys进入到文件中,把最上面保存的秘钥添加到此文件

      中,保存退出

 

7,新建连接

8,名称输入pubkey_login;主机输入和原来服务器相同的ip

9,在用户身份验证输入用户名root,并在方法勾选public key,在设置里选择刚才的用户秘钥,

     输入密码

10,完成后将出现下面界面,点击连接

11,直接免密登录成功

配置二:

第一台作为客户端

第二台作为服务器

图为秘钥的类型,可以自己选择类型

1,在Linux客户端上使用命令ssh-keygen -t rsa -b 2048生成公钥和私钥

第一台机器上(192.168.206.131);此命令为交互式命令;一直回车;-t 选择类型   -b字节大小

2,用ls -l查看文件;私钥将保存到  /root/.ssh/id_rsa ;公钥保存到  /root/.ssh/id_rsa.pub   

3,在客户端(第一台)把公钥复制到服务器(第二台)下的root用户家目录的下

      .ssh authorized_keys文件下面

ssh-copy-id命令知道目录在哪里,会主动把.pub文件复制到服务器的authorized_keys文件中

ssh-copy-id -i root@192.168.206.132(服务器的IP)  此处需要输入密码

4,免密登录第二台机器

配置三:

修改ssh服务端口号

Systemctl status sshd 查看sshd的服务状态

Ss-tnl查看tcp监听的端口号

把22端口改为2222

1,打开 sshd_config 文件

 vim /etc/ssh/sshd_config

2,配置port 2222

:wq  保存退出

3,使用命令Systemctl restart sshd重新启动文件才会生效

4,使用命令Ss -tnl查看监听端口

5,此时登录要加上端口号才能登录成功:

配置四:

禁止root用户远程登录

1,使用命令vim /etc/ssh/sshd_config打开配置文件

2,将PermitRootLogin  yes修该为PermitRootLogin  no

3,使用命令systemctl restart sshd重新启动sshd服务,

4,重新连接登录root用户

5,登录redhat 用户

6,登录成功

配置五:

linux连接linux而且redhat用户的免密登录

第一台机器客户端(192.168.206.131);第二台机器服务器(192.168.206.132)

1,使用命令ssh-keygen -t rsa -b 2048在客户端,生成公钥和私钥

 此时秘钥将保存到文件中,/rhce/.ssh/id_rsa  (保存私钥);/rhce/.ssh/id_rsa.pub  (公钥)

2,使用命令ssh-copy-id -i root@192.168.206.132(服务器的IP) 把公钥复制到服务器下的root用户家目录的下.ssh authorized_keys文件下面

3,此时可以使用第一台机器的redhat用户免密登录第二台机器

配置六:

windows要连接Linux: 而且要使用普通用户redhat免密登录

1.客户端生成公钥和私钥

   windows -》 xshell去生成

2. 把客户端的公钥放入:用户家目录下的.ssh/authorized_keys

   

1,新建生成向导

  2,输入秘钥名称,密码

3,将秘钥复制到文档里备用

4,进入到redhat 用户的家目录下

5,使用命令ls -al   查看有没有.ssh的目录

如果没有的话,创建一个

6,进入到此目录中

7,使用命令 vim authorized_keys进入把之前复制的公钥粘贴进去,保存退出去

8,新建连接

9,设置用户名和私钥

10,点击连接

11,免密登录成功

12,如果连接不上

  使用命令tail -200 /var/log/secure查看问题在哪,一般是权限问题

修改权限

把文件的权限修改为600

把目录的权限修改为700

Linux1 免密登录 linux2 为什么没有出现这个问题?

ssh-keygen -t rsa

ssh-copy-id redhat@192.168.233.233 -> 自动生成authorized_keys -> 600

配置七:

特定用户登录,添加用户useradd user1;useradd user2 ;useradd user3;拒绝user3登录

1,切换到root用户

使用命令Vim /etc/ssh/sshd_config进入编辑

2,进入最底部使用命令AllowUser  user1 user2添加特定用户(除了特定用户,其他用户无法

     登录)

3,使用命令Systemctl resart sshd重启服务

4,使用命令useradd user1;useradd user2 ;useradd user3创建3个用户

5,设置密码

Echo "123456" | passwd --stdin user1

Echo "123456" | passwd --stdin user2

Echo "123456" | passwd --stdin user3

6,登录

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

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

相关文章

MyBatis Plus学习笔记

MyBatis Plus 国产的开源框架&#xff0c;基于 MyBatis 在Mybatis-Plus中&#xff0c;内置了代码生成器&#xff0c;我们可以通过该工具&#xff0c;生成我们需要的代码&#xff0c;例如&#xff1a;entity层&#xff0c;controller层&#xff0c;mapper层&#xff0c;service…

Java面向对象:构造器、this

目录构造器学构造器的目的构造器的作用样例构造器的注意事项总结this关键字this关键字是什么样例this关键字的作用总结构造器 学构造器的目的 真正知道对象具体是通过调用什么代码得到的。能够掌握为对象赋值的其他简便写法。为以后学习面向对象编程的其他内容做支撑。 构造…

Python实现可视化案例:采集天气数据并可视化分析

前言 最近长沙的天气&#xff0c;真的就是不能理解&#xff0c;大起大落的&#xff0c;就跟我的心情一样… 有点无聊就来采集一些天气数据&#xff0c;做个可视化的小案例吧&#xff08;我采集的是以前北上广深的天气数据哈&#xff09; 实现案例的步骤 一.分析数据来源 从…

狂神说笔记——Linux快速入门27

Linux快速入门 参考于&#xff1a;B站狂神视频&#xff01; Java开发之路&#xff1a;JavaSE、MySQL、前端&#xff08;HTML、Css、JS&#xff09;、JavaWeb、SSM框架、SpringBoot、Vue、SpringCloud、Mybatis-plus、Git、Linux &#xff08;CentOS 7&#xff09; 操作系统&…

【Linux】-- 程序地址空间

目录 程序地址空间 进程地址空间 - 虚拟地址空间 概念引入&#xff08;浅&#xff09; 初步理解结构 深入理解虚拟地址 为什么要有地址空间&#xff1f; 程序地址空间的角度理解挂起 程序地址空间 C/C在Linux下的程序地址空间分布&#xff1a; 栈向低地址增长&#xff0…

透过现象看本质,我找到了Netty粘包与半包的这几种解决方案

1、粘包与半包 啥也不说了&#xff0c;直接上代码是不是有点不太友好&#xff0c;我所谓了&#xff0c;都快过年了&#xff0c;还要啥自行车 我上来就是一段代码猛如虎 1.1 服务器代码 public class StudyServer {static final Logger log LoggerFactory.getLogger(StudyS…

怎样进行股票量化对冲策略分析?

股票量化对冲策略的分析需要从各方面去深入了解&#xff0c;就比如说明确量化和对冲的概念&#xff0c;可以先下载OA系统中“量化对冲 产品基础知识的学习&#xff0c;也要知道量化对冲产品在构建股票多头的同时&#xff0c;也构建期货空头。在市场不稳定的操作情绪之下&#x…

Git——初识git

1、git概述 1.1 简介 Git 是一个免费的、开源的分布式版本控制系统&#xff0c;可以快速高效地处理从小型到大型的各种 项目。 Git 易于学习&#xff0c;占地面积小&#xff0c;性能极快。 它具有廉价的本地库&#xff0c;方便的暂存区域和多个工作 流分支等特性。其性能优于…

rtl8188eus Linux驱动移植

rtl8188eus Linux驱动移植 rlt8188eus作为无线USB网卡&#xff0c;可以给我们的Linux设备提供无线上网能力&#xff0c;也能配置为AP&#xff0c;给其它无线设备提供上网能力。在使用较低版本的内核时&#xff0c;内核中不含rtl8188eus驱动&#xff0c;因此尝试自己移植&#…

1、常见的存储设备

文章目录较为常见的存储设备机械硬盘简介固态硬盘简介U盘简介固态U盘MMC卡SD卡简介TF卡NM卡MS卡CF卡CFExpress卡磁带光盘较为常见的存储设备 目前较为常见的存储设备&#xff0c;从电脑用的&#xff1a; 机械硬盘固态硬盘U盘固态U盘 到单反相机、运动相机、手机、行车记录仪…

BigDecimal 基本使用和常用方法

背景 涉及到比较大的数字之间的计算&#xff0c;使用float、double这样的浮点数就不那么准确了。因为不论是float 还是double都是浮点数&#xff0c;而计算机是二进制的&#xff0c;浮点数会失去一定的精确度。所以在商业计算中基本要用java.math.BigDecimal 一、初始化使用…

蹭秦霄贤流量,郭德纲凌晨时分转发老秦动态

都知道德云社董事长王慧很忙&#xff0c;每天除了打理公司业务&#xff0c;还要照顾众多徒弟们的衣食住行。王慧作为德云社董事长&#xff0c;她的忙都在情理之中&#xff0c;而郭德纲作为德云社总班主&#xff0c;他的时间就更加弥足珍贵了。 可是谁能想到&#xff0c;就是这样…

VSCode配置C++开发环境:OpenCV

文章目录Linux编译调试配置OpenCVWin10编译调试配置OpenCV参考最近在做深度学习的C部署相关工作&#xff0c;于是写下这篇文档记录环境配置的过程。环境配置是一项非常繁琐的工作&#xff0c;无论从大学做相关作业还是到工作上。做这项工作需要技术的同时&#xff0c;还需要点运…

从0到1完成一个Vue后台管理项目(一、创建项目)

1.创建文件夹 这很简单&#xff0c;自己选一个盘&#xff0c;然后建一个文件夹即可 我选择的是D盘&#xff0c;最后的目录是vue-admin 注意&#xff1a;最后的目录一定要是英文 2.创建项目 初始化 npm init -y 局部安装vue-cli vue-cli的版本一直在更新&#xff0c;所以不推…

品牌舆情总结及品牌修复,品牌舆情监测监控怎么做?

如今互联网大数据时代&#xff0c;信息流通越来越快&#xff0c;影响覆盖面广。品牌一旦出现舆论&#xff0c;很容易引起大范围的热议&#xff0c;对品牌发展造成不利影响&#xff0c;进而影响品牌声誉。接下来TOOM舆情监测小编带您简单了解品牌舆情总结及品牌修复&#xff0c;…

Linux_Study

文章目录1.操作系统概述1.1 操作系统的作用1.2 常见的操作系统2.Linux介绍2.1 诞生2.2 Linux内核3. Linux基础操作3.1 虚拟机快照3.2 Linux 目录结构3.3 命令、命令行3.4 ls命令&#xff08;列表命令&#xff09;3.5 cd/pwd命令&#xff08;目录命令&#xff09;3.6 相对路径、…

OPENCPU学习---开发环境搭建

BC260Y-CN模组移远公司提供了QuecOpen的开发方案&#xff0c;可以通过提供的SDK中相应的接口快速进行应用开发。开发环境的搭建&#xff0c;首先要准备好开发板、SDK包以及下载工具&#xff0c;准备好后进行编译配置即可进行开发。目前移远提供的BC260Y开发SDK版本为&#xff1…

Lambda表达式超详细总结(简单易懂)

文章目录1、什么是Lambda表达式2、为什么使用Lambda表达式3、函数式接口&#xff08;lambda表达式的使用前提&#xff09;4、推导Lambda表达式5、Lambda表达式语法1、什么是Lambda表达式 Lambda表达式&#xff0c;也可称为闭包。其本质属于函数式编程的概念&#xff0c;是Java…

js判断元素是否在可视区域内

基本概念 首先需要搞清楚 clientHeight、scrollTop 的区别&#xff0c;通俗地说&#xff0c;clientHeight 指的是网页可视区域的高度&#xff0c;scrollTop 指的是网页被卷起来的高度&#xff0c;可以参考这篇文章&#xff1a;彻底搞懂clientHeight、offsetHeight、scrollHeig…

SQL -- MySQL 初识

SQL SQL的概述&#xff1a; SQL全称&#xff1a; Structured Query Language&#xff0c;是结构化查询语言&#xff0c;用于访问和处理数据库的标准的计算机语言。 SQL语言1974年由Boyce和Chamberlin提出&#xff0c;并首先在IBM公司研制的关系数据库系统System上实现美国国家…