SSH跳转/SCP复制远程目标服务器的高阶使用

news2024/11/24 19:14:44

在日常开发和运维的过程中,我一般是使用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上来回且换了。

SCP:

上述配置完成之后就可以直接使用命令: scp /usr/local/qhyu 154:/usr/local,在153上将qhyu文件直接复制到154的指定目录。

scp /path/to/local/file <hostname>:/path/to/remote/directory

提示:

如果在使用私钥连接到目标服务器时,出现类似于“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/770918.html

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

相关文章

零花钱项目---赚钱

流量卡代理推广 172号卡分销系统开启代理注册&#xff0c;月入过万不是梦 适合人群每天随便发发信息&#xff0c;就能轻松变现。平台的可靠 什么是172号卡分销系统 172号卡分销系统是一个专门用于手机流量卡销售的平台。这个系统主要针对中国的三大运营商——中国移动、中国…

DirectX12(D3D12)基础教程(二十二) ——HDR IBL 等距柱面环境光源加载和解算及 GS 一次性渲染到 CubeMap

前序文章目录 DirectX12&#xff08;D3D12&#xff09;基础教程&#xff08;一&#xff09;——基础教程 DirectX12&#xff08;D3D12&#xff09;基础教程&#xff08;二&#xff09;——理解根签名、初识显存管理和加载纹理、理解资源屏障 DirectX12&#xff08;D3D12&…

并发请求gitlab接口报错500 Internal Server Error

配置环境 Gitalb 14.9 由docker搭建&#xff0c;使用的数据库是内置的postgresql 问题背景 近期发现自研系统在请求调用 gitlab 的 api 接口时&#xff0c;尤其是并发请求同一资源时&#xff0c;我这里是并发创建subgroup这个资源&#xff0c;会得到500的报错&#xff0c;起…

ONNX 推理,精度下降

先看代码&#xff1a; img cv2.imread("65.jpg") img1 img.copy() img2 img.copy() img1 - 112 img1 img1.astype(np.float32) img2 np.float32(img2) img2 - 112 现象&#xff1a;在使用 img1 这种处理方式时&#xff0c;推理结果异常&#xff0c;起码掉点…

SpringBoot错误: 找不到或无法加载主类

1.一般出现这种情况都是配置文件application.properties出现的问题 2.可以尝试 maven clean install 以及rebuild project 3.删除项目里.idea文件 重新导入至IDEA编辑器 选择Maven项目 配置好maven.xml 后重新导入

【Linux】进程间通信——管道/共享内存

文章目录 1. 进程间通信2. 管道匿名管道命名管道管道的特性管道的应用&#xff1a;简易的进程池 3. System V共享内存共享内存的概念共享内存的结构共享内存的使用代码实现 1. 进程间通信 进程间通信&#xff08;Inter-Process Communication&#xff0c;简称IPC&#xff09;是…

解锁医疗新时代!互联网医院系统源码助您开启智慧就医新体验

互联网医院系统软件开发之后具有许多优势&#xff0c;下面将介绍其中一些。   提供便利的就医方式&#xff1a;互联网医院系统软件可以让患者享受在线诊疗的便利。患者可以通过手机或电脑随时随地进行在线挂号、在线咨询、在线复诊等操作&#xff0c;不再受制于时间和地点的限…

供应链管理系统有哪些?

1万字干货分享&#xff0c;国内外 20款 供应链管理软件都给你讲的明明白白。如果你还不知道怎么选择&#xff0c;一定要翻到第三大段&#xff0c;这里我将会通过8年的软件产品选型经验告诉你&#xff0c;怎么样才能快速选到适合自己的软件工具。 &#xff08;为防后续找不到&a…

Python学习笔记-Windows下VirtualEnv+VSCode中虚拟环境配置

1 VirtualEnv简介 VirtualEnv是一个虚拟化环境&#xff0c;是独立开的开发环境&#xff0c;在一个文件夹中创建的独立虚拟环境&#xff0c;可以分隔开不同项目&#xff0c;开发互不影响。 优点如下&#xff1a; 使不同的应用开发环境独立&#xff0c;避免互相干扰环境升级不…

RabbitMq(一)

一、基本概念、常见工作模式以及简单使用 MQ全称Message Queue (消息队列)&#xff0c;是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。 小结 MQ消息队列&#xff0c;存储消息的中间件分布式系统通信两种方式:直接远程调用和借助第三方完成间接通信发…

【C语言初阶(18)】结构体

文章目录 前言Ⅰ结构体的声明Ⅱ 结构体的定义Ⅲ 结构体初始化Ⅳ 访问结构体成员⒈结构体变量访问结构体成员⒉结构体指针访问结构体成员 Ⅴ 结构体的嵌套Ⅵ 结构体传参 前言 C 语言提供了一些非常基本的数据类型&#xff0c;如 int、float、double、char 等&#xff0c;这些不同…

基于SpringBoot + EasyExcel + Vue + Blob实现导出Excel文件的前后端完整过程

首先前端发起HTTP请求之后&#xff0c;后端返回一个Excel输出流&#xff0c;然后前端用Blob类型接收数据&#xff0c;并且解析响应头数据以及提取源文件名&#xff0c;最后用a标签完成下载。 一、后端代码 &#xff08;1&#xff09;导入阿里巴巴的EasyExcel依赖&#xff08;…

【C++进阶之路】list的基本使用和模拟实现

文章目录 初步认识①定义②底层原理③迭代器的分类 一、基本使用1.插入结点元素2.删除结点元素3.合并两个有序链表4.将一条链表的某一部分转移到另一条链表5.对链表排序并去重6.vector与list排序的比较 二、模拟实现①要点说明②基本框架③迭代器构造函数- -*->list里的迭代…

HG20202-2014脱脂工程施工及验收规范

为提高脱脂工程施工技术水平,加强施工过程的质量控制,保证施工质量和安全,制定本规范。 本规范适用于化工建设工程中忌油工艺介质系统的设备、管道和管道组成件仪表和仪表组成件等的脱脂。 本规范不适用于下列情况的脱脂: 1、制造领域; 2、工厂停车检修。 设计文件或用户规…

2023云曦期末复现

目录 WEB sign SSTI serialize WEB sign 有10000个 进行bp爆破 能发现 410 和 414长度 还有 420 410 414存在16进制的字符 拼凑出来为 \x66\x6c\x61\x67\x7b\x61\x63\x63\x39\x39\x66\x39\x30\x34\x66\x30\x65\x61\x66\x61\x34\x31\x63\x30\x36\x34\x33\x36\x38\x31\x3…

行为型模式 - 策略模式

概述 先看下面的图片&#xff0c;我们去旅游选择出行模式有很多种&#xff0c;可以骑自行车、可以坐汽车、可以坐火车、可以坐飞机。 作为一个程序猿&#xff0c;开发需要选择一款开发工具&#xff0c;当然可以进行代码开发的工具有很多&#xff0c;可以选择Idea进行开发&…

WPF嵌入外部exe应用程序-使用Winfom控件承载外部程序

使用Winform控件承载外部程序 在WPF中使用Winfom控件添加winform相关的程序集在XAML头中加入对这两个程序集命名空间的引用使用Winform控件效果&#xff1a;问题 在Winfom控件中嵌入exe程序准备Winfrom控件更换父窗体的句柄完整实现代码&#xff1a;实现效果&#xff1a; 问题和…

王道计算机网络学习笔记(5)——传输层和应用层

前言 文章中的内容来自B站王道考研计算机网络课程&#xff0c;想要完整学习的可以到B站官方看完整版。 五&#xff1a;传输层 5.1&#xff1a;传输层基本概述 传输层的功能&#xff1a; 1传输层提供进程和进程之间的逻辑通信 2复用和分用 微信和QQ都使用传输层的协议进行发…

设计模式-外观模式在Java中的使用示例

场景 外观模式 外观模式是一种使用频率非常高的结构型设计模式&#xff0c;它通过引入一个外观角色来简化客户端与子系统 之间的交互&#xff0c;为复杂的子系统调用提供一个统一的入口&#xff0c;降低子系统与客户端的耦合度&#xff0c;且客户端调用非常方便。 示例 自…

【区块链+体育】“数智化”的杭州亚运会,中创助力区块链技术发展

“智能”&#xff0c;是杭州亚运会的办赛理念之一。除了数字藏品开亚运先河&#xff0c;杭州亚组委充分应用区块链、大数据、人工智能等前沿技术&#xff0c;为观众提供从购票、出行、观赛到住宿、美食和旅游等“一站式”服务。 本次亚运会将全程智能陆续落到了实处&#xff0…