Debian-linux运维-ssh配置(兼容Jenkins插件的ssh连接公钥类型)

news2025/1/4 19:13:27

系统版本:Debian 12.5、11.1

1 生成密钥对

可以用云服务商控制台生成的密钥对,也可以自己在客户端或者服务器上生成,

已经有密钥对就可以跳过这步

用户默认密钥文件路径为 ~/.ssh/id_rsa,可以在交互中指定路径,也可以加-f参数指定路径
注意避免用户覆盖已有密钥

ssh-keygen -t rsa  # 生成配对密钥,后续一路enter即可
#ssh-keygen -t rsa -f ~/.ssh/id_rsa

passphrase 的建议:设置 passphrase(密码)是为了提高私钥的安全性,但如果是自动化场景(如无交互式登录),则留空更方便。

会在用户目录(即~这个)下生成.ssh文件夹,里面的id_rsa是私钥,id_rsa.pub是公钥

进入.ssh文件夹中,将公钥写入到authorized_keys中,将id_rsa私钥下载并保存好

2 公钥写入

在以下命令之前,需检查 authorized_keys 文件是否已存在。如果存在直接追加,避免覆盖

cd ~/.ssh
touch authorized_keys 
cat id_rsa.pub >> authorized_keys # 直接追加到 authorized_keys

设置 .ssh 目录和 authorized_keys 文件的权限,以确保 SSH 密钥认证的安全性,防止未授权访问或潜在的安全风险
目录权限(700):保护目录及其文件不被其他用户访问。
文件权限(600):保护公钥文件内容不被篡改或读取

chmod 700 ~/.ssh
chmod 600 ~/.sshauthorized_keys

3 修改ssh配置

vim /etc/ssh/sshd_config

关键配置项说明

  • Port:
    修改默认端口(22)为其他端口,例如 12322
Port 12322
  • 禁用 root 登录:
    禁止直接使用 root 登录,提高安全性(如非必要,建议设置为 no):
  • 以后只有一个root用户 就不用改这里!
PermitRootLogin no
  • 密钥认证和密码认证:
    使用密钥认证并禁用密码登录(测试密钥登录成功后再修改密码登录设置):
PubkeyAuthentication yes
PasswordAuthentication no
  • 指定公钥文件路径:
# 默认是 .ssh/authorized_keys,必要时可自定义
AuthorizedKeysFile .ssh/authorized_keys
  • 指定允许的公钥类型
    针对兼容性问题(如 Jenkins 插件的 SSH 连接):
PubkeyAcceptedKeyTypes=+ssh-rsa
  • 监听特定地址: 只允许指定的 IP 地址:
ListenAddress 0.0.0.0 # 允许所有地址
ListenAddress 192.168.1.100 # 仅监听特定地址

云服务商的控制台的安全组:最好限制特定ip才能登录ssh端口

如果不用云服务商的安全组,可以使用firewall-cmd管理端口,把新的ssh端口先开放

我个人习惯是先必须修改下面几项

Port 22 #修改端口
PubkeyAuthentication yes # yes表示允许密钥登陆
# AuthorizedKeysFile      .ssh/authorized_keys .ssh/authorized_keys2 # 指定密钥的文件位置
PasswordAuthentication no # 不允许使用密码登陆,等测试密钥登陆成功了再修改此条,以防无法登陆
PubkeyAcceptedKeyTypes=+ssh-rsa #Jenkins 插件ssh连接失败Auth fail可以添加

找到对应行,进行修改

4 重启ssh

systemctl restart ssh
last
journalctl -u ssh

或者,如果你想查看实时更新:

journalctl -u ssh -f

5 测试连接

ssh -p 2202 user@server_ip

参考文章:

SSH远程管理与配置

https://blog.csdn.net/qq_47855463/article/details/116655311

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

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

相关文章

ZZNUOJ 1798:大小写判断(C/C++/Java)

题目描述 给定一个英文字母判断这个字母是大写还是小写。 输入 输入只包含一个英文字母c。 输出 如果c是大写字母,输出“upper”,否则输出“lower”。 样例输入 x 样例输出 lower 来源 蓝桥杯算法训练 常见的ASCII值 ASCII表中可以记下部分特殊的值(十进制)(字母从A到Z&am…

Wonder Dynamics技术浅析(二):人体姿态估计

Wonder Dynamics 的人体姿态估计模块旨在从图像或视频中检测并定位人体关键点(如关节、肢体等),为后续的动作捕捉、虚拟角色动画等应用提供基础数据。 一、人体姿态估计概述 人体姿态估计是指从图像或视频中检测并定位人体关键点的位置&…

前端压缩字体包方法,8MB可压缩至900K!

1、先安装压缩工具 npm install font-spider -g2、新建个文件夹,把要压缩的字体放进去,然后新建一个html,如下图 目前没有经过压缩的字体包是接近8MB 新建的html内容如下,直接复制即可 解释: 1、在样式中定义要压缩…

mysql的索引类型和索引方法

前言 在 MySQL 中,索引类型和索引方法是两个不同的概念。索引类型决定了可以存储的数据种类以及索引的功能特性,而索引方法则定义了索引数据的组织方式和查找机制。在 MySQL 中,索引(Index)是用于加快数据检索速度的数…

七种改进爬山算法的方法

一、爬山算法 爬山算法(Hill Climbing Algorithm)是一种启发式的基于局部最优解的搜索算法,用于在给定的搜索空间中寻找全局最优解或足够好的解。它属于局部搜索算法,通常用于解决优化问题,包括连续和离散问题。 爬山算法模拟了爬山的过程,从某个随机起始点开始,不断向更…

推荐5款局域网IP扫描工具,支持电脑+Android!

在日常网络管理中,快速扫描局域网中的设备和IP地址是一项基本但非常重要的任务。无论是排查网络问题还是进行设备管理,一款好用的 IP 扫描工具都能让你事半功倍。 如何选择适合自己需求的局域网 IP 扫描工具?有哪些功能强大又易于上手的工具…

微信小程序调用 WebAssembly 烹饪指南

我们都是在夜里崩溃过的俗人,所幸终会天亮。明天就是新的开始,我们会变得与昨天不同。 一、Rust 导出 wasm 参考 wasm-bindgen 官方指南 https://wasm.rust-lang.net.cn/wasm-bindgen/introduction.html wasm-bindgen,这是一个 Rust 库和 CLI…

03-栈和队列

目录 3.1栈和队列的定义和特点 3.2栈的表示和操作的实现 顺序栈的表示和实现 Ⅰ.顺序栈的初始化 Ⅱ.顺序栈的入栈 Ⅲ.顺序栈的出栈 链栈的表示和实现 Ⅰ.链栈的初始化 Ⅱ.链栈的入栈 Ⅲ.链栈的出栈 Ⅳ.取栈顶元素 Ⅴ.判断链栈是否为空 3.3栈与递归 3.4队列的表示和操…

Vue 3.0 中 template 多个根元素警告问题

在 Vue 2.0 中,template 只允许存在一个根元素,但是这种情况在 Vue 3.0 里发生了一些变化。 在 Vue 3.0 中开始支持 template 存在多个根元素了。但是因为 VSCode 中的一些插件没有及时更新,所以当你在 template 中写入多个根元素时&#xf…

vue elementUI Plus实现拖拽流程图,不引入插件,纯手写实现。

vue elementUI Plus实现拖拽流程图,不引入插件,纯手写实现。 1.设计思路:2.设计细节3.详细代码实现 1.设计思路: 左侧button列表是要拖拽的组件。中间是拖拽后的流程图。右侧是拖拽后的数据列表。 我们拖动左侧组件放入中间的流…

人工智能与传统编程的主要区别是什么?

传统编程:开发者预先编写软件行为规则,代码基于程序员定义逻辑处理输入并产生确定输出,具有确定性、手动编写规则和结构化逻辑特点,如垃圾邮件分类程序基于预设关键词等规则。AI 编程:从数据中学习而非手动编写规则&am…

电脑tkbrep.dll缺失怎么修复?

电脑运行时常见问题解析:tkbrep.dll缺失的修复策略与系统维护建议 在软件开发和电脑使用的日常中,我们时常会遇到各种系统报错和文件缺失的问题,其中tkbrep.dll的缺失便是一个较为常见的例子。作为软件开发从业者,我深知这些问题…

Nacos源码之服务注册

1. 准备工作 ​ 我们在使用Nacos作为SpringCloud中的注册中心组件时,最常用到的是它的三个功能:服务注册、服务发现和配置中心。 ​ 现在我们单机启动多个user-client,当我们成功运行UserClientApplication后可以在IDEA的service一栏中找到…

2025和数集团新年献词|和合与共,生生不息

2024年12月30日,“和数新春会”在上海环球港凯悦酒店举行,和数集团董事长兼总经理唐毅、集团高管和市场骨干欢聚一堂,共迎新春。 告别收获的2024,迎来腾飞的2025。 回望来时路,我们在挑战中砥砺前行,在困…

web 开发全局覆盖文件上传身份验证漏洞利用

全局覆盖 首先认识全局变量和局部变量 再一个就是知道全局变量是全局使用的并且有个特点就是可以覆盖 这个就是全局变量我们输出一下发现 z居然等于函数内的计算值 把我们原来定义的全局变量 $z给覆盖了 看一下局部变量 这个时候 z就不会被覆盖 <?php $x1; $y2; …

Day3 微服务 微服务保护(请求限流、线程隔离、服务熔断)、Sentinel微服务保护框架、分布式事务(XA模式、AT模式)、Seata分布式事务框架

目录 1.微服务保护 1.1.服务保护方案 1.1.1 请求限流 1.1.2 线程隔离 1.1.3 服务熔断 1.2 Sentinel 1.2.1.介绍和安装 1.2.2 微服务整合 1.2.2.1 引入sentinel依赖 1.2.2.2 配置控制台 1.2.2.3 访问cart-service的任意端点 1.3 请求限流 1.4 线程隔离 1.4.1 OpenFeign整合Senti…

使用 TensorFlow 打造企业智能数据分析平台

文章目录 摘要引言平台架构设计核心架构技术栈选型 数据采集与预处理代码详解 数据分析与预测代码详解 数据可视化ECharts 配置 总结未来展望参考资料 摘要 在大数据时代&#xff0c;企业决策正越来越依赖数据分析。然而&#xff0c;面对海量数据&#xff0c;传统分析工具常因…

计算机毕业设计Python动漫推荐系统 漫画推荐系统 动漫视频推荐系统 机器学习 bilibili动漫爬虫 数据可视化 数据分析 大数据毕业设计

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

单北斗露天矿山人员车辆定位方案

你好&#xff0c;我是北京华星智控小智&#xff0c;我来给您介绍我公司的矿山人员定位系统。我们的露天矿山人员定位系统基于北斗技术&#xff0c;主要用于矿山人员和车辆的定位。 我们的矿山人员车辆定位设备主要有图上的3种&#xff0c;1是车辆定位的车载终端&#xff0c;他…

Gitlab17.7+Jenkins2.4.91实现Fastapi/Django项目持续发布版本详细操作(亲测可用)

一、gitlab设置&#xff1a; 1、进入gitlab选择主页在左侧菜单的下面点击管理员按钮。 2、选择左侧菜单的设置&#xff0c;选择网络&#xff0c;在右侧选择出站请求后选择允许来自webhooks和集成对本地网络的请求 3、webhook设置 进入你自己的项目选择左侧菜单的设置&#xff…