SSH远程登录协议

news2024/10/7 14:24:53

目录

什么是ssh服务器

概念

优点

原理

SSH登录

方法一

无需验证

方法二

格式: ssh -l   用户名    IP 地址  -p port

-l :指定登录名称

-p:选项,指定登录端口(当服务端的端口非默认时,需要使用-p 指定端口进行登录)

服务端配置

1.修改默认端口    :17行修改自己的默认端口

禁止root用户登录   :38行修改为no,默认注释并写的yes

禁止普通用户登录

白名单

1.编辑配置文件

添加一条指令允许所有主机访问我的xyc1   , 只允许用户在192.168.17.25上访问我xyc

黑名单

1.配置文件

添加一条命令   禁止所有人连接xyc

pc2 192.168.17.25    登录xyc失败

ssh服务的最佳实践

使用秘钥对及免交互验证登录

原理:

用户/密码:

                                                  密码登录

                                                 

                                                 公钥登录

实验免密交互登录

1.PC1(192.168.17.55)

2.将PC1的公钥拷贝到PC2

3.切换到PC2(192.168.17.25)

4.切换到PC1(192.168.17.55)验证


什么是ssh服务器

概念

SSH(Secure Shell)是一种安全的加密协议,用于远程连接服务器。SSH服务器允许用户通过安全的方式远程访问服务器,执行命令或传输文件。SSH服务由服务端软件(如OpenSSH)和客户端(如SecureCRT、Putty、xshell等)组成。SSH默认使用22端口提供服务,它有两个不兼容的ssh协议版本,分别是ssh1和ssh2。SSH服务端是一个守护进程,它在后台运行并监听来自客户端的连接请求。

优点

ssh:加密  压缩   远程连接加密协议  (3389端口)

telnet:明文   无压缩  远程协议

telnet  192.168.17.55    80   命令(查看80端口号是否打开)

原理

客户端首次发起连接,服务端  会生成一个随机会话id   

会将  服务端的  公钥以及会话id   发给对面客户端

客户端收到 会话id  以及 服务端的公钥

会用客户端自己的公钥 以及会活id 做运算,产生一个结果

然后再服务端公钥加密

再将这个加密结果 传给服务端

服务端收到加密结果后  会用自己的私钥解密得到 客户端的公钥和会话id运算结果

因为已知会话id  所以可以得到客户端公钥   

双方持有对方公钥

SSH登录

ssh  选项   用户名   IP地址

方法一

[root@localhost ~]# ssh root@192.168.17.25
#默认使用22端口  root(对方的用户名)加IP地址,首次登会询问密码

无需验证

[root@xyc ~]# vim /etc/ssh/ssh_config
修改配置文件 无需验证   有安全风险

方法二

格式: ssh -l   用户名    IP 地址  -p port

-l :指定登录名称

-p:选项,指定登录端口(当服务端的端口非默认时,需要使用-p 指定端口进行登录)

[root@xyc ~]# ssh -l root 192.168.17.25

-t :连跳

[root@localhost ~]# ssh -t 192.168.17.25 ssh -t 192.168.17.21

服务端配置

1.修改默认端口    :17行修改自己的默认端口

[root@localhost ~]# vim /etc/ssh/sshd_config

禁止root用户登录   :38行修改为no,默认注释并写的yes

[root@localhost ~]# vim /etc/ssh/sshd_config

禁止普通用户登录

[root@localhost xyc]# vim /etc/pam.d/su

白名单

1.编辑配置文件

[root@localhost ~]# vim /etc/ssh/sshd_config

添加一条指令允许所有主机访问我的xyc1   , 只允许用户在192.168.17.25上访问我xyc

AllowUsers xyc@192.168.17.25  xyc1

本机 192.168.17.55

pc1  192.168.17.30

访问xyc1  成功

访问xyc失败

pc2 192.168.17.25

访问xyc1  成功

访问xyc1  成功

黑名单

1.配置文件

[root@localhost ~]# vim /etc/ssh/sshd_config

添加一条命令   禁止所有人连接xyc

DenyUsers xyc

pc2 192.168.17.25    登录xyc失败

ssh服务的最佳实践

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

  2. 禁止使用protocol version 1

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

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

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

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

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

  8. 使用基于密钥的认证

  9. 禁止使用空密码

  10. 禁止root用户直接登录

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

  12. 经常分析日志 分离

使用秘钥对及免交互验证登录

原理:

           1. 用户/密码

            2.基于秘钥

用户/密码:

            1.生成公钥和私钥

             2.将公钥导给对面

                                           

                                                    密码登录

  1. 客户端发起ssh请求,服务器会把自己的公钥发送给用户

  2. 用户会根据服务器发来的公钥对密码进行加密

  3. 加密后的信息回传给服务器,服务器用自己的私钥解密,如果密码正确,则用户登录成功

     

                                                 

                                                 公钥登录

                           

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

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

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

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

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

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

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

                        

实验免密交互登录

1.PC1(192.168.17.55)

ssh-keygen -t ecdsa  //生成一个密钥

2.将PC1的公钥拷贝到PC2

cd .ssh
ssh-copy-id -i id_ecdsa.pub xyc@192.168.17.25

3.切换到PC2(192.168.17.25)


[root@localhost ~]# cd /home
[root@localhost home]# cd xyc/
[root@localhost xyc]# ls -a
.              .bash_logout   .cache     .ICEauthority  .ssh  视频  下载
..             .bash_profile  .config    .local         公共  图片  音乐
.bash_history  .bashrc        .esd_auth  .mozilla       模板  文档  桌面
[root@localhost xyc]# cd .ssh/
[root@localhost .ssh]# ls
authorized_keys  known_hosts
[root@localhost .ssh]# cat authorized_keys
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAqY3acl5dQz7poIwDeHzTZ62xsr7N3808Ux0I0dG08nuYfTnJZk6AHqPjrebM7Te3OtA8ZmBOy/w8F6/cmtbgI= root@localhost.localdomain
[root@localhost .ssh]# 

4.切换到PC1(192.168.17.55)验证

[root@localhost .ssh]# ssh-add
Could not open a connection to your authentication agent.  //报错未开启连接
[root@localhost .ssh]# ssh-agent bash   //开启连接
[root@localhost .ssh]# ssh-add
Identity added: /root/.ssh/id_ecdsa (/root/.ssh/id_ecdsa)
[root@localhost .ssh]# ssh xyc@192.168.17.25
Last login: Wed Nov 15 22:20:26 2023
[xyc@localhost ~]$ 

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

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

相关文章

拿到信创天翼云电脑账号后,我又傻眼了...

在《面向国产系统的 App 发布&#xff0c;含泪总结》中&#xff0c;我就吐槽过信创产品的不靠谱。用户购买一台终端&#xff0c;都没法用&#xff0c;得经历复杂的账号申请。 紧催慢催&#xff0c;等待了半个月之后&#xff0c;今天终于拿到了账号。然而&#xff0c;满怀期待登…

OpenAI与微软合作,构建 ChatGPT 5 模型;10天准确天气预报

&#x1f989; AI新闻 &#x1f680; OpenAI与微软合作&#xff0c;构建 ChatGPT 5 模型&#xff0c;下一代人工智能或拥有超级智能 摘要&#xff1a;OpenAI首席执行官 Sam Altman 在接受采访时表示&#xff0c;OpenAI正在与微软合作构建下一代人工智能模型 ChatGPT 5&#x…

Django——模板层、模型层

模板层 一. 模版语法 {{ }}: 变量相关 {% %}: 逻辑相关 1. 注释是代码的母亲 {# ... #} 2. 基本数据类型传值 int1 123 float1 11.11 str1 我也想奔现 bool1 True list1 [小红, 姗姗, 花花, 茹茹] tuple1 (111, 222, 333, 444) dict1 {username: jason, age: 18, i…

rpmbuild 包名 version 操作系统信息部分来源 /etc/rpm/macros.dist

/etc/rpm/macros.dist openeuler bclinux src.rpm openssl-1.1.1f-13.oe1.src.rpm 打包名称结果 openeuler openssl-1.1.1f-13.aarch64.rpm bclinux openssl-1.1.1f-13.oe1.bclinux.aarch64.rpm 验证 修改openeuler配置文件macros.dist 重新在openeuler上执行rpmbuild…

第三章 栈和队列【24王道数据结构笔记】

1.栈 1.1 栈的基本概念 只允许在一端(栈顶top)进行插入或删除操作的受限的线性表。后进先出&#xff08;Last In First Out&#xff09;LIFO。或者说先进后出FILO。 进栈顺序&#xff1a;a1 > a2 > a3 > a4 > a5出栈顺序&#xff1a;a5 > a4 > a3 > a2 …

数据结构—LinkedList与链表

目录 一、链表 1. 链表的概念及结构 1. 单向或者双向 2. 带头或者不带头 3. 循环或者非循环 二.LinkedList的使用 1.LinkedList概念及结构 2. LinkedList的构造 3. LinkedList的方法 三. ArrayList和LinkedList的区别 一、链表 1. 链表的概念及结构 链表是一种 物理…

Postman实现接口的文件上传

近期在复习Postman的基础知识&#xff0c;在小破站上跟着百里老师系统复习了一遍&#xff0c;也做了一些笔记&#xff0c;希望可以给大家一点点启发。 接口的文件上传&#xff0c;与其他接口的传参差不多&#xff0c;只要点击form-data&#xff0c;选择要上传的文件即可。 实际…

Java第十九章

一.绘制图形 Java 可以分别使用 Graphics类和Graphics2D 类绘制图形&#xff0c;Graphics 类使用不同的方法实现不同图形的绘制。例如&#xff0c;drawLine()方法可以绘制直线&#xff0c;drawRect()方法用于绘制矩形&#xff0c;drawOval()方法用于绘制椭圆形等。 例1. 例2. …

物联网项目:充电桩项目实战~

你好&#xff0c;我是田哥 最近除了忙于面试辅导、模拟面试以外&#xff0c;还在搞一件大事&#xff1a;充电桩项目。 分布式微服务项目实战&#xff1a;充电桩项目 充电桩项目肯定是和物联网相关的&#xff0c;聊到物联网又不得不聊的是MQTT协议。 什么是MQTT MQTT&#xff0c…

数据结构前言(空间复杂度)

1.空间复杂度 空间复杂度也是一个数学表达式&#xff0c;是对一个算法在运行过程中临时占用存储空间大小的量度 。 空间复杂度不是程序占用了多少bytes的空间&#xff0c;因为这个也没太大意义&#xff0c;所以空间复杂度算的是变量的个数。 空间复杂度计算规则基本跟实践复杂…

解决Github上的README无法显示图片

首先感谢博主的思路&#xff1a;思路 最近写了点东西提交到git 发现本地能查看md里的图片用的相对路径&#xff0c;提交到github就看不见&#xff0c;并且发现不只是我自己的仓库看不见&#xff0c;其他人的我也看不见。那就有问题了 解决&#xff1a;正常使用相对路径&…

C#中.NET Framework4.8 Windows窗体应用通过EF访问新建数据库

目录 一、 操作步骤 二、编写EF模型和数据库上下文 三、 移植&#xff08;Migrations&#xff09;数据库 四、编写应用程序 五、生成效果 前文已经说过.NET Framework4.8 控制台应用通过EF访问已经建立的和新建的数据库。 本文想说的是&#xff0c;.NET Framework4.8 Win…

黑豹程序员-SpringCloudAlibaba聚合工程打包和运行

文章目录 1、SpringCloudAlibaba项目结构2、打包配置3、打包4、运行 1、SpringCloudAlibaba项目结构 2、打包配置 3、打包 4、运行 java -jar rms-parent.jar

解决:java: 错误: 不支持发行版本 5 最有效方法

报错信息如图&#xff1a; 直接上终极方法&#xff1a; 修改配置文件 如图找到settings.xml文件 在标签中间插入如下代码&#xff08;jdk更改为自己电脑上的版本&#xff09; <profile><id>development</id><activation><jdk>11</jdk><…

SQL练习---619.出现一次的最大数字

题目 分析 首先确定表的来源只有一个表数字表&#xff0c;再者判断他是不是单一数字&#xff0c;&#xff08;想到的是直接按数字分组&#xff0c;通过count函数来判断是否为单一数子&#xff09;&#xff0c;然后求最大值。 题解 select Max(num) as num from MyNumbers wh…

EMNLP 2023 | DeepMind提出大模型In-Context Learning的可解释理论框架

论文题目&#xff1a;In-Context Learning Creates Task Vectors 论文链接&#xff1a;https://arxiv.org/abs/2310.15916 01. 引言 此外&#xff0c;作者也提到本文的方法与软提示&#xff08;soft-prompt&#xff09;[1]方法类似&#xff0c;soft-prompt也是通过调整大模型内…

C语言查看main函数的参数

这里写自定义目录标题 argc 代表参数的个数argv 代表参数的具体值&#xff0c;其中argv[0]代表的是可执行文件的名字&#xff0c;参考上图

[工业自动化-22]:西门子S7-15xxx编程 - 软件编程 - 如何PLC建立用户界面: SIMATIC 面板式HMI 或工控机PC HMI

目录 前言&#xff1a; 一、PLC&#xff08;可编程逻辑控制器&#xff09;的用户界面支持方式 1.1 概述 1.2 西门子&#xff08;Siemens&#xff09;的人机界面&#xff08;HMI&#xff09;支持多种类型 1.3 PC HMI VS SIMATIC HMI 二、PC—HMI—PLC连接架构的实现 三、…

百度曹海涛:生成式AI正从“探索能力边界”向“推动应用落地”过渡

11月9日&#xff0c;以“星云棋布&#xff0c;步步为‘赢’”为主题的2023 IDC中国生态峰会在北京举办。会上&#xff0c;IDC中国区总裁霍锦洁女士的发表致辞。同时&#xff0c;IDC生态伙伴和行业领袖从多重维度分析了AI技术应用的发展&#xff0c;以及对于整体IT生态所产生的影…

虹科方案 | 从概念到生产的自动驾驶软件在环(SiL)测试解决方案

来源&#xff1a;雅名特自动驾驶 虹科方案 | 从概念到生产的自动驾驶软件在环&#xff08;SiL&#xff09;测试解决方案 自动驾驶软件在环&#xff08;SiL&#xff09;测试解决方案 自动驾驶软件在环&#xff08;SiL&#xff09;测试解决方案能够研究和验证高历程实验和恶劣驾…