SSH远程登陆系统(RedHat9)

ssh的基本用法

ssh hostname/IP    # 如果没有指定用什么用户进行连接,默认使用当前用户登录
ssh –l username hostname/IP
ssh username@hostname
ssh username@IP

在第一次连接到服务器时,会自动记录服务器的公钥指纹信息

如果出现密钥变更导致错误可以直接删除known_hosts文件

在这里插入图片描述

Linux和MacOS系统的known_hosts文件所在位置

~/.ssh/known_hosts

在这里插入图片描述

Windows系统的known_hosts文件所在位置

%username%\.ssh\known_hosts

在这里插入图片描述

打开远程图形化界面

ssh建立的连接默认只允许字符传输,不允许Xclient进行传输

如果使用普通的ssh连接,我们无法使用远程主机的图形化工具,如gedit、Firefox等

ssh -X root@192.168.110.1 # 添加-X选项,使用Xclient建立ssh连接

在这里插入图片描述

ssh无密登录

配置密钥登陆,远程登录时不需要密码即可直接登录

  • 实现Client的root以sshuser用户登录Server
标识ServerClient
IP地址192.168.110.1/24192.168.110.2/24
用户root+sshuserroot
操作生成密钥对,将公钥传输到Server的用户家目录下

在Server新建用户sshuser,用于后续无密登录

useradd sshuser
echo user@123 | passwd --stdin sshuser

在Client生成密钥对

ssh-keygen -f ~/.ssh/id_rsa -N ""
# ssh-keygen 生成SSH密钥文件
# -f ~/.ssh/id_rsa 指定生成私钥的路径及名称,默认保存位置这里(此选项可忽略)
# -N “” :不对生成的私钥加密

在这里插入图片描述

查看密钥对

ll .ssh/

在这里插入图片描述

将Client的公钥传输到Server的sshuser家目录下

ssh-copy-id sshuser@192.168.110.1

在这里插入图片描述

在Server上查看传输的公钥

su – sshuser
ll .ssh/

在这里插入图片描述

验证无密登录

ssh sshuser@192.168.110.1

在这里插入图片描述

SSH安全设置

ssh存在两种认证方式:密钥认证和密码认证

禁用密钥登录

在上面操作中,我们允许Client的root用户通过Server的sshuser无密登录,这里我们在Server上禁用密钥登录

vim /etc/ssh/sshd_config# 修改下列内容
PubkeyAuthentication no

在这里插入图片描述

重启sshd服务

systemctl restart sshd

验证

ssh sshuser@192.168.110.1

在这里插入图片描述

禁用密码登录

我们先不开启密钥登录,修改配置文件禁止密码登录

vim /etc/ssh/sshd.config# 修改以下内容
PasswordAuthentication no

在这里插入图片描述

重启sshd服务

systemctl restart sshd

验证

ssh sshuser@192.168.110.1	# 测试密钥登录,被拒绝
ssh root@192.168.110.1		# 测试密码登录,被拒绝

在这里插入图片描述

开启密钥登录

vim /etc/ssh/sshd.config# 注释选项
#PubkeyAuthentication no

再次测试

ssh sshuser@192.168.110.1	# 测试密钥登录,成功
ssh root@192.168.110.1		# 测试密码登录,被拒绝

在这里插入图片描述

SSH限制用户

禁用root账户登录

首先开启ssh密码登录

vim /etc/ssh/sshd.config# 注释选项
#PasswordAuthentication no	# 注释

重启sshd服务

systemctl restart sshd

首先我们是可以通过root账户连接Server

ssh root@192.168.110.1

在这里插入图片描述

修改配置文件,禁止root连接

vim /etc/ssh/sshd.config# 修改以下内容
PermitRootLogin no
禁止普通用户登录

在Server上新建用户user1

useradd user1
echo user@123 | passwd--stdin user1

测试ssh登录Server

ssh user1@192.168.110.1

在这里插入图片描述

修改配置文件,禁止user1用户登录

vim /etc/ssh/sshd.config# 添加下列内容
DenyUsers user1
# AllowUsers xx 只允许xx用户登录
# AllowUsers xx yy		只允许xx和yy用户登录
# DenyGroups xx	禁止xx用户组登录
# 如果同时出现Allow和Deny,只生效Deny

验证

ssh user1@192.168.110.1

在这里插入图片描述

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

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

相关文章

L2-2 巴音布鲁克永远的土(二分+并查集)

思路:我们可以二分答案,然后判断当前答案合不合理。 对于判断答案合理,可以用并查集,看mid能否把所有检查点连进一个集合中,枚举每个结点,如何当前结点周围的四个方向可以连的话,就加进同一个集…

贪心算法|435.无重叠区间

力扣题目链接 class Solution { public:// 按照区间右边界排序static bool cmp (const vector<int>& a, const vector<int>& b) {return a[1] < b[1];}int eraseOverlapIntervals(vector<vector<int>>& intervals) {if (intervals.siz…

基于 OpenHarmony 音符检测实现原理

一、音符检测的基本原理 本文基于 OpenHarmony 开源系统提供了一种音符检测的原理方法&#xff0c;结合多首音乐&#xff0c;运用了 python 和 C 两种编程环境实现了预期的检出效果。旨在为振动马达(vibrator)提供音乐节奏感的触觉效果&#xff0c;代码所在目录 .\base\sensor…

2024.4.12蚂蚁庄园今日答案:豆腐在烹调时容易碎有什么办法可以避免?

原文来源&#xff1a;蚂蚁庄园今日答案 - 词令 蚂蚁庄园是一款爱心公益游戏&#xff0c;用户可以通过喂养小鸡&#xff0c;产生鸡蛋&#xff0c;并通过捐赠鸡蛋参与公益项目。用户每日完成答题就可以领取鸡饲料&#xff0c;使用鸡饲料喂鸡之后&#xff0c;会可以获得鸡蛋&…

JDK版本升级后连不上MySQL数据库的问题

1. 问题描述 用户在将 JDK 版本从 8 升级到 11 后&#xff0c;发现应用无法连接到 MySQL 数据库&#xff0c;出现连接超时或连接被拒绝的错误。 例如出现如下报错信息&#xff1a; 可能原因&#xff1a; JDBC驱动版本不兼容&#xff1a; 新的 JDK 11 可能需要使用更高版本的 My…

docker一键部署GPU版ChatGLM3

一键运行 docker run --gpus all -itd --name chatglm3 -p 81:80 -p 6006:6006 -p 8888:8888 -p 7860:7860 -p 8501:8501 -p 8000:8000 --shm-size32gb registry.cn-hangzhou.aliyuncs.com/cwp-docker/chatglm3-gpu:1.0 进入容器 docker exec -it chatglm3 /bin/bash cd /…

自定义校验器

1.前端校验 <template><el-dialog:title"!dataForm.brandId ? 新增 : 修改":close-on-click-modal"false":visible.sync"visible"><el-form:model"dataForm":rules"dataRule"ref"dataForm"keyu…

Java(IO流)

IO流 用于读写文件中的数据&#xff08;可以读写文件或网络中的数据&#xff09;I&#xff1a;inputO&#xff1a;output 1.IO流的分类 1 流的方向 输入流&#xff08;读取&#xff1a;程序 -> 文件&#xff09;输出流&#xff08;写出&#xff1a;文件 -> 程序&#x…

Hello 算法10:搜索

https://www.hello-algo.com/chapter_searching/binary_search/ 二分查找法 给定一个长度为 n的数组 nums &#xff0c;元素按从小到大的顺序排列&#xff0c;数组不包含重复元素。请查找并返回元素 target 在该数组中的索引。若数组不包含该元素&#xff0c;则返回 -1 。 # 首…

前端实用文档总结

工具类 utools 快捷键 空格option 呼出颜色提取/转换json格式化工具截图markdown笔记文本差异对比svg转png正则… deepl 翻译工具 翻译工具 poe AI工具figma 原型图设计iconfont阿里巴巴图库菜鸟工具-正则表达式Mermaid在线画图&#xff0c;属于文字类画图&#xff0c;根据对应…

C++11 设计模式2. 简单工厂模式

简单工厂&#xff08;Simple Factory&#xff09;模式 我们从实际例子出发&#xff0c;来看在什么情况下&#xff0c;应用简单工厂模式。 还是以一个游戏举例 //策划&#xff1a;亡灵类怪物&#xff0c;元素类怪物&#xff0c;机械类怪物&#xff1a;都有生命值&#xff0…

深入浅析插入排序:原理、实现与应用

在众多基础排序算法中&#xff0c;插入排序以其简洁明了的逻辑和直观的实现方式&#xff0c;赢得了广大程序员的喜爱。本篇博客将带领大家深入了解插入排序的原理、详细实现步骤以及其在实际场景中的应用&#xff0c;帮助读者更好地理解和掌握这一经典排序方法。 一、插入排序…

用python 实现进销存

进销存系统是一个基本的商业管理系统&#xff0c;用于跟踪库存、销售和采购活动。以下是一个简单的进销存系统的Python实现&#xff0c;这个系统包括商品管理、采购入库、销售出库以及库存查询的功能。 首先&#xff0c;我们定义一个Product类来表示商品&#xff1a; python复…

Unity3D知识点精华浓缩

一、细节 1、类与组件的关系 2、Time.deltaTime的含义 3、怎么表示一帧的移动距离 4、Update和LateUpdate的区别和适用场景 5、找游戏对象的方式&#xff08;别的对象 / 当前对象的子对象&#xff09; 6、组件1调用组件2中方法的方式 7、在面板中获取外部数据的方法 8、序列化属…

在Windows系统中开启SSH服务

文章目录 引言I 使用Windows内置的OpenSSH服务器功能1.1 安装并启用SSH服务器1.2 配置SSH服务器的端口号II Windows的run功能III SSH的其他操作3.1 绑定本地端口3.2 本地端口转发3.3 远程端口转发3.4 后台运行3.5 不执行远程操作3.6 在Linux上创建一个git用户用于SSH访问see al…

ChatGPT智能写作:开启论文写作新视野

ChatGPT无限次数:点击直达 html ChatGPT智能写作&#xff1a;开启论文写作新视野 引言 在当今信息爆炸的时代&#xff0c;人们需要更有效的工具来帮助他们在各种领域进行写作。ChatGPT作为一项基于人工智能技术的顶尖产品&#xff0c;为论文写作提供了全新的视角和可能性。…

海外博士后政策,这些重点你不能错过!

​ ​海外高层次人才博士后专项申报政策是针对具有较高学术造诣和研究潜力的海外学者、研究人员&#xff0c;旨在吸引他们回国从事科研工作&#xff0c;推动国内科技创新发展。该政策不仅为海外人才提供了良好的职业发展平台&#xff0c;还为他们提供了丰富的科研资源和优厚…

20240408在线给加密的PDF文件解密【打印限制】

20240408在线给加密的PDF文件解密 百度&#xff1a;PDF解密 https://smallpdf.com/cn/unlock-pdf PDF解密 未选择任何文件 或拖放PDF至此处 无文件大小限制&#xff0c;无广告水印 - 这款易于使用且免费的在线密码移除工具可为您移除恼人的PDF密码。 无需注册 数秒内解锁 PDF …

【GitHub技术全面解析及游戏开发者的应用】

GitHub技术全面解析及游戏开发者的应用 GitHub作为全球最大的开源代码托管平台&#xff0c;不仅为软件开发者提供了一个强大的工具&#xff0c;也为游戏开发者带来了前所未有的便利。在游戏开发领域&#xff0c;GitHub的技术可以帮助开发者更高效地管理代码、协作开发、分享资…

CommandLineRunner实现项目启动时预处理

如果希望在SpringBoot应用启动时进行一些初始化操作可以选择使用CommandLineRunner来进行处理。 我们只需要实现CommandLineRunner接口&#xff0c;并且把对应的bean注入容器。把相关初始化的代码重新到需要重新的方法中。 这样就会在应用启动的时候执行对应的代码。 Compon…