Linux SSH私钥认证结合cpolar内网穿透安全高效远程登录指南

文章目录

    • 前言
    • 1. Linux 生成SSH秘钥对
    • 2. 修改SSH服务配置文件
    • 3. 客户端秘钥文件设置
    • 4. 本地SSH私钥连接测试
    • 5. Linux安装Cpolar工具
    • 6. 配置SSHTCP公网地址
    • 7. 远程SSH私钥连接测试
    • 8. 固定SSH公网地址
    • 9. 固定SSH地址测试

前言

开发人员在工作中经常需要远程访问服务器和数据中心,然而,传统的基于密码的SSH远程登录方式,尽管操作简便,却面临着密码泄露、暴力破解等多重安全隐患,严重威胁着企业的信息安全。

为了应对这些挑战,采用私钥进行身份验证的SSH登录方式应运而生。Linux SSH服务作为一种安全、灵活的网络协议,通过加密技术保障用户远程登录的安全。与密码登录相比,私钥认证方式利用加密算法生成的密钥对进行身份验证,仅持有私钥的用户才能成功登录,从而极大降低了密码泄露的风险。

但是,当SSH服务部署在内网环境中时,如何突破内网限制,实现远程访问成为了一个亟待解决的问题。此时,cpolar内网穿透工具凭借其高效、易用的特性,成为了连接内网与外网的桥梁。cpolar能够将内网服务器的端口映射到公网上,使得我们可以通过公网地址轻松访问内网服务。

本文将详细介绍如何将Linux SSH服务与cpolar相结合,使用私钥进行远程登录的配置流程。从cpolar的安装与配置,到SSH私钥的生成与设置,再到最终的远程连接测试,我们将为您提供全方位的指导。通过本文的学习,您将能够掌握一种更为安全、稳定的远程连接方式,为您的企业信息安全保驾护航。

请添加图片描述

1. Linux 生成SSH秘钥对

本地ssh连接上Linux ,执行ssh-keygen -t rsa 命令生成秘钥对,执行命令后,一路回车即可,执行完成后,我们可以看到生成的秘钥的文件都放在/root/.ssh/这个文件夹下面(具体以自己的路径为准)

image-20241011160037118

生成后,我们执行:cd ~/.ssh 命令进入这个文件夹,然后列出目录,可以看到有两个文件,第一个是私钥 第二个.pub结尾是公钥

image-20241011160333154

然后我们把公钥.pub结尾的那个文件改个名称,执行下面命令,把id_rsa.pub改为authorized_keys

mv id_rsa.pub authorized_keys

修改后,我们再次查看列表,id_rsa.pub文件变成了authorized_keys,这样就修改成功了,接下来我们修改一下ssh配置文件

image-20241011160655433

2. 修改SSH服务配置文件

上面秘钥对生成设置好后,我们打开ssh 配置文件,输入命令:vim /etc/ssh/sshd_config,按i 键进入编辑,然后开启公钥验证,把密码验证改为no,表示关闭,然后记得保存

image-20241011135955512

然后重启一下ssh服务,下面我们开始在windows设置连接

systemctl restart sshd

3. 客户端秘钥文件设置

本例是使用windows来连接Linux,我们需要在windows设置一下Linux的私钥,首先回到Linux,在Linux中我们输入下面命令查看id_rsa私钥内容

cat ~/.ssh/id_rsa

执行命令后,我们可以看到这个id_rsa私钥文件的全部内容,把这些内容全部复制下来

image-20241011161742062

然后我们在windows任意文件夹下,这个文件夹路径自己要知道,比如我这边是放在E:/ssh/文件夹下面,具体以自己设置为准,然后创建一个名称为id_rsa的文件.不用指定后缀

image-20241011162019622

创建好后,我们用记事本或者文本工具打开,把我们在Linux上看到的那个秘钥文件的内容全部粘贴进去,然后保存

image-20241011162133240

接下来设置这个秘钥文件的权限,缩小权限的范围,选中右键点击属性,打开安全,点击高级

image-20241011162510712

首先点击禁用继承

image-20241011162609878

然后点击选择第一个选项

image-20241011162646411

然后我们把这些全部的权限一个个删除掉,全部删掉

image-20241011162801677

全部删除后我们点击添加一个用户权限

image-20241011162837155

然后点击选择主体,输入自己电脑用户名,再点击确定按钮

image-20241011163008874

然后会默认勾选两个权限,直接点击确定即可

image-20241011163138448

然后我们可以看到添加了一个用户权限,直接点击应用再点击确定即可

image-20241011163228044

再点击确定就全部设置完成了,下面我们就可以本地测试连接了

image-20241011163330329

4. 本地SSH私钥连接测试

首先我们本地输入ssh 用户名@局域网IP 测试,可以看到 密码的方式已经无法连接了

image-20241011163646940

现在我们加上指定秘钥文件路径再次连接,命令格式ssh 用户名@局域网IP -i 秘钥文件全路径,可以看到成功连接上了Linux.其中 -i E/ssh/id_rsa 这个参数就是指定我们上面在windows创建设置的秘钥文件全路径.本地测试就成功了,这样Linux ssh连接就设置只能秘钥登录,无法使用密码登录,极大的提高了安全性,下面我们在Linux安装cpolar,实现远程也可以连接访问

image-20241011163935910

5. Linux安装Cpolar工具

上面在本地成功设置了无密码使用私钥方式ssh 连接,并本地局域网测试成功,下面我们在Linux安装Cpolar内网穿透工具,通过Cpolar 转发本地端口创建公网地址,我们可以很容易实现远程访问,而无需自己注册域名购买云服务器.下面是安装cpolar步骤

cpolar官网地址: https://www.cpolar.com

  • 使用一键脚本安装命令
sudo curl https://get.cpolar.sh | sh
  • 安装完成后,可以通过如下方式来操作cpolar服务,首先执行加入系统服务设置开机启动,然后再启动服务
# 加入系统服务设置开机启动
sudo systemctl enable cpolar# 启动cpolar服务
sudo systemctl start cpolar# 重启cpolar服务
sudo systemctl restart cpolar# 查看cpolar服务状态
sudo systemctl status cpolar# 停止cpolar服务
sudo systemctl stop cpolar

Cpolar安装和成功启动服务后,内部或外部浏览器上通过局域网IP加9200端口即:【http://192.168.xxx.xxx:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可

image-20240220142041422

6. 配置SSHTCP公网地址

登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复
  • 协议:tcp
  • 本地地址:22 (ssh 默认端口)
  • 域名类型:临时随机TCP端口 (首次使用 选择随机地址测试)
  • 地区:选择China vip

点击创建 (注意点击一次即可!)

image-20241011165228961

然后打开左侧在线隧道列表,查看刚刚创建隧道后生成的远程 TCP连接地址,这个地址就是远程连接的地址,在其他设备上使用该地址进行远程连接,下面进行远程地址连接测试

image-20241011165252709

7. 远程SSH私钥连接测试

创建好公网地址后,我们打开cmd窗口 ,使用公网地址进行连接,输入命令格式:ssh 用户名@cpolar公网域名 -p 域名对应的端口 点击回车,我们可以看到,同样密码的方式已经无法连接了

image-20241011165927418

下面我们指定一下私钥文件全路径,可以看到成功连接上了Linux,不需要输入密码,同时也是公网连接,如果其他电脑要连接Linux,我们只要把这个私钥文件拷贝去其他电脑,在连接的时候指定这个私钥文件全路径,就可以在其他电脑进行远程连接Linux了,到这里初步设置就全部完成了!

image-20241011170204514

小结

为了更好地演示,我们在前述过程中使用了Cpolar生成的隧道,其公网地址是随机生成的。

这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

我一般会使用固定TCP域名,原因是我希望将地址发送给同事或客户时,它是一个固定、易记的公网地址,这样更显正式,便于交流协作。

8. 固定SSH公网地址

上面步骤在cpolar中使用的是随机临时tcp端口地址,所生成的公网地址为随机临时地址,该公网地址24小时内会随机变化。我们接下来为其配置固定的TCP端口地址,该地址不会变化,设置后将无需每天重复修改地址。

配置固定tcp端口地址需要将Cpolar升级到专业版套餐或以上。

登录Cpolar官网,点击左侧的预留,找到保留的tcp地址,我们来为远程联机地址保留一个固定的地址:

  • 地区:选择China vip
  • 描述:即备注,可自定义

点击保留

image-20241011170717240

地址保留成功后,系统会生成相应的固定公网地址,将其复制下来

image-20241011170751597

再次打开cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到我们上面创建的TCP隧道,点击右侧的编辑

image-20241011170844227

修改隧道信息,将保留成功的固定tcp地址配置到隧道中

  • 端口类型:修改为固定tcp端口
  • 预留的TCP地址:填写官网保留成功的地址,

点击更新(只需要点击一次更新即可,不要重复点击)

image-20241011170912822

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到公网地址已经更新成为了和我们在官网固定的TCP地址和端口一致。这样表示地址已经成功固定了,下面测试固定地址连接

image-20241011170937126

9. 固定SSH地址测试

固定地址设置好后,我们再次使用固定的tcp地址进行连接,同样也需要指定私钥文件全路径,可以看到,成功连接上了Linux ,固定地址测试连接就完成了,不用再担心地址端口会变化了.

image-20241011171425316

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

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

相关文章

国产化浪潮下,高科技企业如何选择合适的国产ftp软件方案?

高科技企业在数字化转型和创新发展中,数据资产扮演着越来越重要的角色。在研发过程中产生的实验数据、设计文档、测试结果等,专利、商标、版权之类的创新成果等,随着信息量急剧增加和安全威胁的复杂化,传统的FTP软件已经不能满足这…

高校宿舍信息管理系统小程序

作者主页:编程千纸鹤 作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参…

DNS域名详细解析详解

文章目录 DNS域名详细解析详解一、引言二、DNS域名解析过程1、DNS解析概述1.1、DNS解析的基本步骤 2、代码示例 三、DNS查询类型1、递归查询2、迭代查询 四、总结 DNS域名详细解析详解 一、引言 在互联网的世界里,域名和IP地址是两个不可或缺的概念。IP地址是计算…

Selenium自动化测试 —— 模拟鼠标键盘的操作事件

软件测试资料领取:[内部资源] 想拿年薪40W的软件测试人员,这份资料必须领取~ 软件测试面试刷题工具:软件测试面试刷题【800道面试题答案免费刷】 鼠标操作事件 在实际的web产品测试中,对于鼠标的操作,不单单只有clic…

全网视频下载神器一键下载全网视频!

前言 想从网上下载视频和音乐到手机吗?那真的很简单!这个应用支持各种格式,而且完全不用花钱。当你在下载器内打开一个网站视频,下载器会自动“看到”它,你只需要点一下,下载就开始了。下载过程中&#xf…

系统架构师2023版:习题

架构设计基础 计算机基础 目前处理器市场中存在 CPU 和 DSP 两种类型的处理器,分别用于不同的场景,这两种处理器具有不同的体系结构,DSP采用()。 A.冯诺依曼结构 B.哈佛结构 C.FPGA 结构 D.与 GPU 相同的结构 解析:…

C++:lambda表达式

lambda表达式是一个可调用对象。 lambda表达式定义: 看作一个匿名函数。定义lambda,[ ]开始,跟(),括号内传递参数 ,{ }内接函数体。用一个auto 类型的变量接收。把该变量名当作该匿名函数的函数…

javascript实现sha512和sha384算法(支持微信小程序),可分多次计算

概述: 本人前端需要实现sha512和sha384计算的功能,最好是能做到分多次计算。 本文所写的代码在现有sha512和sha384的C代码,反复测试对比计算过程参数,成功改造成sha512和sha384的javascript代码,并成功验证好分多次计算…

C++类和对象 (下)

文章目录 前言一. 再探构造函数初始化列表特性总结练习 二. 类型转换2.1 隐式类型转换2.2 临时对象具有常性2.3 explicit关键字2.4 多参数类型转化 三. static成员概念特性练习 四. 友元概念特性 五. 内部类概念特性 六. 匿名对象概念特性 七. 对象拷贝时的编译器优化END 前言 …

【数据集】【YOLO】【目标检测】航拍船只识别数据集 3550 张,YOLO航拍水面船只识别算法实战训练教程!

一、数据集介绍 【数据集】航拍船只识别数据集 3550 张,目标检测,包含YOLO/VOC格式标注。 数据集中包含1种分类:{0: ship},代表水面船只。 数据集来自国内外图片网站、无人机航拍视频截图以及卫星云图; 可用于无人…

【LeetCode】【算法】48. 旋转图像

LeetCode 48. 旋转图像 题目描述 给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 思路 思路:再次拜见K神&#xf…

如何解决FPS低的问题?代码优化方法有哪些?

如果你是一名游戏开发者,或者对电脑性能有所追求的用户,那么你一定遇到过帧率(FPS)低的问题。帧率低会导致游戏卡顿、画面不流畅等问题,极大地影响了用户体验。本文将从代码层面探讨FPS低的原因,并提供一些…

边缘计算的学习

文章目录 概要何为边缘计算?现阶段,企业使用边缘计算相对云计算 整体架构流程边缘网络组件边缘计算与云安全 研究方向结合引用 概要 edge 何为边缘计算? 边缘计算(英语:Edge computing),是一种…

【案例】Excel使用宏来批量插入图片

一、场景介绍 我有一个excel文件,需要通过一列的文件名称,按照规则给批量上传图片附件。 原始文件: 成功后文件: 二、实现方法 1. 使用【wps】工具打开Excel文件,将其保存为启用宏的文件。 2.找到编辑宏的【VB编辑器…

使用ChatGPT神速精读文献,12个高阶ChatGPT提示词指令,值得你复制使用

在学术研究的道路上,文献的阅读和分析往往是我们迈向深层次理解的第一步。如何有效提取文献中的核心要点,如何全面总结一个研究的背景与贡献,甚至如何深入剖析论文中的每个细节,都是每个研究者必须掌握的技能。通过系统化的文献分析,我们不仅能了解现有研究的框架与成果,…

leetcode 832.翻转图像

1.题目要求: 2.题目代码: class Solution { public://水平反转函数void replace_photo(vector<int>& array){for(int i 0;i < array.size();i){if(array[i] 1){array[i] 0;}else{array[i] 1;}}}vector<vector<int>> flipAndInvertImage(vector&…

CST案例分析:TLM算法仿真5G毫米波手机天线和整机

5G时代&#xff0c;产品复杂&#xff0c;更新换代快&#xff0c;如何快速仿真不同的设计版本是影响研发效率的关键问题。本期我们用达索系统SIMULIA自己的手机模型来演示5G毫米波的仿真。 &#xff08;图片仅为概念演示&#xff0c;未经达索系统授权不得使用&#xff09; 完整的…

W55RP20-EVB-Pico评估板介绍

目录 1 简介 2 硬件资源 2.1 硬件规格 2.2 引脚定义 2.3 工作条件 3 参考资料 3.1 RP2040 数据手册 3.2 原理图 ​编辑 原理图 & 物料清单 & Gerber 文件 3.3 尺寸图&#xff08;单位&#xff1a;mm&#xff09; ​编辑 3.4 认证 3.5 参考例程 4 硬件协…

【重装系统后重新配置2】pycharm 终端无法激活conda环境

pycharm 终端无法激活 conda 环境&#xff0c;但是 Windows本地终端是可以激活的 原因是pycharm 默认的终端是 Windows PowerShell 解决方法有两个&#xff1a; 一、在设置里&#xff0c;修改为cmd 二、下面直接选择

【51单片机】UART串口通信原理 + 使用

学习使用的开发板&#xff1a;STC89C52RC/LE52RC 编程软件&#xff1a;Keil5 烧录软件&#xff1a;stc-isp 开发板实图&#xff1a; 文章目录 串口硬件电路UART串口相关寄存器 编码单片机通过串口发送数据电脑通过串口发送数据控制LED灯 串口 串口是一种应用十分广泛的通讯接…