SSH跳转远程目标服务器的高阶使用

news2025/1/16 15:44:20

在日常开发和运维的过程中,我一般是使用Xshell的工具对linux服务器的相关操作。我说一下我写这篇文章的背景:甲方因为安全需要,给了一台可以通过vpn访问的跳板机,通过这台跳板机去操作另外的十多台应用服务器,那么肯定是要用到ssh命令去跳转到目标服务器。

# 在跳板机执行ssh命令到目标服务器,执行完后需要输入root密码
ssh root@192.168.13.xx 

一般情况下直接使用上述的命令,输入密码后跳转到目标服务器,这样就能在目标服务器上执行想要的操作。但是每次都输入密码,有点麻烦,作为一个懒人必须能少敲的命令少敲。

  • 第一次优化,使用密钥进行身份验证

    使用SSH密钥对进行身份验证可以提高安全性,避免了每次连接时输入密码的麻烦。在本地计算机上生成SSH密钥对后,可以将公钥复制到远程服务器上,然后使用私钥进行身份验证。

    在使用SSH连接时,私钥文件通常用于身份验证,以便你能够连接到目标服务器。以下是获取SSH连接所需的私钥文件的一些常见方法:

    #首先进入到这个目录下 
    cd /root/.ssh
    #创建一个文件名,因为我的ip结尾是154,所以这么命名 
    touch 154_rsa
    #这个命令将会生成一个新的RSA密钥对,包括公钥和私钥。你可以选择在默认路径上保存密钥对(`~/.ssh/id_rsa`和`~/.ssh/id_rsa.pub`),或者选择自定义路径。
    ssh-keygen -t rsa -b 4096
    

    执行完上ssh-keygen -t rsa -b 4096会提示存的路径和输入密码,输入密码的时候直接回车,建议不使用密码。如图所示:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uBn96fK6-1689314874080)(imags/image-20230714114532068.png)]

    这样就会在/root/.ssh目录生成154_rsa和154_rsa.pub两个文件,我们需要把154_rsa移动到154服务器

    [root@localhost .ssh]# scp 154_rsa root@192.168.88.154:/root/.ssh
    154_rsa                                                                                                                                                                                          100% 3326     4.4MB/s   00:00    
    [root@localhost .ssh]# ssh root@192.168.88.154
    Last login: Fri Jul 14 11:31:33 2023 from 192.168.17.154
    [root@localhost ~]# 
    
    

    这样直接ssh不需要输入密码就能直接跳转了。

    但是这么做我还是觉得不够,因为我还需要记住ip,每次跳转还得查一下某台服务器的ip是什么,很麻烦,于是我开始做第二次优化。

  • 第二次优化

    我想达到什么目的:直接输入ssh 153就跳转到153服务器上,或者ssh order 直接跳转到153服务器上。

    使用SSH的配置文件来实现在本机直接通过IP尾号连接到目标服务器的操作。以下是具体的步骤:

    #首先进入到这个目录下 
    cd /root/.ssh
    #创建一个文件名,config,用来配置信息
    touch config
    #生成153。
    ssh-keygen -t rsa -b 4096
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HtAJckci-1689314874082)(imags/image-20230714135959938.png)]

    生成好了153_rsa的私钥和153_rsa.pub公钥。配置config文件

    Host 153 #别名可以设置为153或者order等你想要的别名
      HostName 192.168.X.153  # 目标服务器的IP地址
      User username  # 目标服务器的用户名
      Port 22  # 目标服务器的SSH端口号
      IdentityFile ~/.ssh/153_rsa  # 身份验证文件的路径
    

    保存后需要提高153_rsa的权限,,因为该文件的权限设置过于宽松将无法访问指定的私钥文件

    chmod 600 /root/.ssh/153_rsa
    

    153_rsa.pub的公钥文件添加到跳板机服务器的authorized_keys文件中

    ssh-copy-id -i ~/.ssh/153_rsa.pub root@跳板机ip
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IqXYfwGG-1689314874082)(imags/image-20230714140611276.png)]

    在另外一台服务器也这么操作执行,这样就能如上所示在153 154上来回且换了。

提示:

如果在使用私钥连接到目标服务器时,出现类似于“Enter passphrase for key”的提示,这意味着私钥文件被设置了一个密码保护,并且需要输入密码才能使用该私钥进行身份验证。

如果您设置了私钥密码并且忘记了密码,则无法使用该私钥进行身份验证。您可以尝试使用以下命令检查私钥文件的密码:

ssh-keygen -y -f ~/.ssh/154_rsa

此命令将使用指定的私钥文件路径(~/.ssh/154_rsa)显示公钥,同时会提示您输入密码。如果您输入了正确的密码,则将显示公钥。如果您输入了错误的密码,则会显示错误消息。

如果您想删除私钥文件的密码保护,请使用以下命令:

ssh-keygen -p -f ~/.ssh/154_rsa

此命令将使用指定的私钥文件路径(~/.ssh/154_rsa)删除密码保护,并提示您输入新密码。如果您不想设置新密码,则可以按Enter键跳过此步骤。

如果您成功删除了私钥文件的密码保护,则可以使用该私钥文件连接到目标服务器,而无需再输入密码进行身份验证。

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

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

相关文章

MySQL 8目录结构与源码

目录 一、主要目录结构 二、获取MySQL 源代码 一、主要目录结构 MySQL的主要目录结构说明bin目录所有MySQL的可执行文件。如:mysql.exedata目录系统数据库所在的目录my.ini文件MySQL的主要配置文件D:\MySQL\Data用户创建的数据库所在的目录 二、获取MySQL 源代码 …

【OpenCV • c++】图像几何变换 | 图像平移

🚀 个人简介:CSDN「博客新星」TOP 10 , C/C 领域新星创作者💟 作 者:锡兰_CC ❣️📝 专 栏:【OpenCV • c】计算机视觉🌈 若有帮助,还请关注➕点赞➕收藏&#xff…

代码随想录算法训练营day3 | 203. 移除链表元素,707. 设计链表,206. 反转链表

目录 203. 移除链表元素 707. 设计链表 206. 反转链表 203. 移除链表元素 难度:easy 思路: 代码: // 使用虚拟头结点 class Solution {public ListNode removeElements(ListNode head, int val) {if (head null) {return head;}// 虚拟…

Waves 14 Complete对Mac和Windows系统的最低要求

Waves 14 Complete是一款功能齐全的音频编辑软件,适用于音乐制作、音频工程和声音设计等领域。它提供了一系列强大的工具和效果,帮助用户在音频处理过程中实现专业水平的效果和混音。 Waves 14 Complete包含了多个实用的插件,如均衡器、压缩…

垃圾收集器CMS-JVM(十一)

Jvm类的创建过程包括类的加载,类的验证,准备,分析,初始化。 验证是不是.class文件。 准备过程则是先赋值初始化的值,并不是直接赋值原始值。 分析比较复杂,会有静态链接处理和动态链接处理。 最后就是类…

亚马逊云科技,加速生成式AI的落地

编辑:阿冒 设计:沐由 “展望今天的世界,在机遇之外,更多事后我们看到的是前所未有的巨大挑战。事实证明,惟有通过创新、专注创新,方能挖掘和发现更多的增长机会。” 在2023亚马逊云科技中国峰会的第二天&am…

【笔记】oracle线上生产数据库使用exp的方式更新到本地

笔记来源 今天的任务是:将线上老的数据库里的数据同步到本地现有的二期数据库中来,即二期项目需要线上数据进行最后测试,于是就有了今天这篇,线上生产数据库更新到本地数据库的笔记。 由于数据量较大,我尝试过将线上…

建表与数据准备

自己新建数据库: create table Student(sid varchar(10),sname varchar(10),sage datetime,ssex nvarchar(10));insert into Student values(01 , 赵雷 , 1990-01-01 , 男); insert into Student values(02 , 钱电 , 1990-12-21 , 男); insert into Student values(03 , 孙风 ,…

原生微信小程序手把手创建发布评论效果

1.静态设计 1.1标题 1.1.1 wxml文件 <!-- 标题 --><view class"title">励志语句</view> 1.1.2 wcss文件 .title{font-size: 50rpx;text-align: center;/* 上左右下 */padding: 60rpx 0 30rpx; } 1.1.3显示 1.2方块卡片 1.2.1 wxml文件 <…

铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

python数据处理方法——pkl格式文件

目录 1.pkl文件格式简介&#xff1a; 1.1 什么是 pkl 文件&#xff1f; 1.2 pkl文件和pmml文件的简单区别 1.3 pkl 文件的优点 1.4 使用场景 2.使用 Python 操作 pkl 文件 2.1 对象序列化为 pkl 文件&#xff08;将数据保存为pkl文件&#xff09; 2.2 从 pkl 文件中反…

JS逆向系列之猿人学爬虫第18题-jsvmp - 洞察先机

文章目录 目标网址加密参数分析Python 实现往期逆向文章推荐目标网址 https://match.yuanrenxue.cn/match/18题目标着难度是困难级别,主要还是vmp保护的JS代码调试困难,理清逻辑就会变得简单了 加密参数分析 请求第一页时没有加密参数,从第二页开始,url会携带t和v两个参数…

依次查找数组中指定字符的索引值从左侧开始查找和从右侧开始查找numpy.char.find();numpy.char.rfind()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 依次查找数组中指定字符的索引值 从左侧开始查找和从右侧开始查找 numpy.char.find()&#xff1b;numpy.char.rfind() [太阳]选择题 下列代码最后输出的结果是&#xff1f; import numpy as …

python 运行前端

到html目录下执行&#xff1a;python -m http.server 8080 &#xff08;看你的python版本python or python3 &#xff1f;&#xff09;

机器学习实践(2.2)LightGBM回归任务

前言 LightGBM也属于Boosting集成学习模型(还有前面文章的XGBoost)&#xff0c;LightGBM和XGBoost同为机器学习的集大成者。相比越来越流行的深度神经网络&#xff0c;LightGBM和XGBoost能更好的处理表格数据&#xff0c;并具有更强的可解释性&#xff0c;还具有易于调参、输入…

青岛大学_王卓老师【数据结构与算法】Week05_10_顺序栈的操作3_学习笔记

本文是个人学习笔记&#xff0c;素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享&#xff0c; 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权&#xff0c;请留言作删文处理。 课程视频链接&#xff1a; 数据结构与算法基础…

OpenTelemetry

OpenTelemetry&#xff08;简称为Otel&#xff09;是一个开源项目&#xff0c;旨在为分布式系统提供可观测性&#xff08;observability&#xff09;。它提供了一组标准化的API、工具和库&#xff0c;用于生成、收集和分析分布式应用程序的跟踪&#xff08;tracing&#xff09;…

Redis报错-CROSSSLOT keys in request don‘t hash in the same slot

背景 问题涉及&#xff1a;spring security、spring session、redis 问题描述 springbootspringsecurityspringsessionantd 登录功能的时候&#xff0c;在源码中使用到了redis的rename命令&#xff08;如下图所示&#xff09; 在这里就会报错 CROSSSLOT keys in request d…

微信小程序安装和使用 Vant Weapp 组件库

微信小程序安装和使用 Vant Weapp 组件库 1. Vant Weapp 介绍2. Vant Weapp 的 安装2.1. 通过npm安装2.2. 构建npm2.3. 修改 app.json2.4. 修改 project.congfig.json2.5. 测试一下&#xff0c;使用Vant Weapp提供的组件 1. Vant Weapp 介绍 Vant 是一个轻量、可靠的移动端组件…

字符函数和内存函数(二)

目录 一、strtok函数 二、strerror函数 三、memcpy函数 3.1memcpy函数的认识 3.2memcpy函数的模拟实现 四、memmove函数 4.1memmove函数的认识 4.2memmove函数的模拟实现 五、memcmp函数 5.1memcmp函数的认识 5.2memcmp函数的模拟实现 六、memset函数 七、字符分类函…