首页 > 其他分享 >简单的SSH代理如何实现

简单的SSH代理如何实现

时间:2023-12-14 12:00:32浏览次数:28  
标签:IP admin 主机 代理 目标 访问 SSH 简单 ssh

需求场景

如上图所示

只有 主机A 可以访问 目标主机, 主机B 或者其他外来主机都是无法访问目标主机的,而 主机B 是可以访问 主机A

造成这种问题的原因有很多中,例如 防火墙设置了策略

现在无法对目标主机的防火墙做策略更改,那要如何实现 主机B 对 目标主机 的ssh远程登录呢

解决办法

做ssh代理,通过主机A,访问目标主机

配置

前提

各个主机都需要安装openssl

主机B需要配置基于key的免密访问主机A

主机B配置

# 生成密钥
ssh-keygen

# copy公钥给主机A的admin用户
ssh-copy-id [email protected]

ssh 方面的配置

在当前用户下的 .ssh 目录下创建 config 文件

vim .ssh/config

# 下面两个IP都是目标主机的IP
Host 192.168.1.2
HostName 192.168.1.2
# user也是目标主机的user
User root
# 端口是目标主机的端口
Port 22
# 下面是通过主机A的admin用户代理ssh命令
ProxyCommand ssh -q [email protected] -W [%h]:%p

多个IP就配置多组就好了

然后尝试使用ssh连接目标主机,就可以正常访问了

标签:IP,admin,主机,代理,目标,访问,SSH,简单,ssh
From: https://www.cnblogs.com/guangdelw/p/17900922.html

相关文章

  • Python实现软件设计模式1:简单工厂/静态工厂模式
    包含的角色工厂角色Factory静态方法抽象产品角色Product声明公用的抽象方法和属性具体产品角色ConcreteProduct覆盖抽象产品中声明的方法,多种产品多种覆盖模式特点可以降低系统耦合度,使用工厂方法时无需知道对象创建细节,传入工厂类的参数可以是字......
  • git 配置多个ssh
    1、配置用户名、密码查看配置--javascripttypescriptbashsqljsonhtmlcssccppjavarubypythongorustmarkdown$gitconfig--global-lfilter.lfs.clean=git-lfsclean--%ffilter.lfs.smudge=git-lfssmudge--%ffilter.lfs.process=git-lfsfilter-proce......
  • 零基础 从 yolo8 入门计算机视觉超简单:物体识别、图像分类、轨迹追踪、姿势识别
    目录安装Ultralytics训练模型验证预测&识别导出追踪图像分割提取分类姿势识别轨迹生成UltralyticsYOLOv8是备受好评的实时目标检测和图像分割模型,主要功能是物体识别、分割图片物体、分类、姿态识别和跟踪等。Ultralytics支持使用CPU、GPU进行训练,支持x64、arm64等CPU......
  • 设计模式:简单工厂模式
    简单工厂模式不直接向客户端暴露对象创建的实现细节,而通过一个工厂类来负责创建产品类的实例。简单工厂模式的组成:抽象产品(AbstractProduct):定义产品的接口,在这个例子中是Payment类。具体产品(ConcreteProduct):实现抽象产品接口的类,在这个例子中是Alipay和Wechat......
  • 简单写一下设计模式7原则
    开闭原则:只许增加,不许修改;使用抽象进行构建,使用实现拓展细节;面向抽象编程;提高可复用性和可维护性依赖倒转原则:依赖抽象,而不是依赖具体的实现,可以减少耦合性,提高系统稳定性,降低修改程序的风险单一职责原则:一个类,接口,方法只负责一个职责;降低复杂度,提高可维护性接口隔离原则:使用多......
  • TCP简单的服务端代码(C语言)
    1#include<stdio.h>2#include<strings.h>//bzero3#include<unistd.h>//close4#include<sys/socket.h>//socket5#include<netinet/in.h>//structsockaddr_in6#include<arpa/inet.h>//inet_addr7i......
  • GO TCP代理(可代理SQLSERVER\MYSQL\ORCALE)
    用nginx代理不知道为什么内网能用,外网用不了,改用go写个代理临时用下,直接上代码 packagemainimport( "fmt" "io" "log" "net")varaddrstring="0.0.0.0:51415"//代理服务端口vardest_addrstring="192.168.2.120:1433"//目标地址......
  • TCP简单的客户端代码(C语言)
    1#include<stdio.h>2#include<unistd.h>3#include<sys/socket.h>4#include<netinet/in.h>5#include<arpa/inet.h>6intmain(intargc,charconst*argv[])7{8//1.创建套接字(TCP)9intsockfd=socket(AF_......
  • 基于PyQt和websocket,制作一个简单的BiliBili弹幕机(大体思路)
    前言从B站上获取直播弹幕的方式大体有两种,一种是通过调用下面这个接口,通过轮询获取importrequestsroom_id=123456#示例url='https://api.live.bilibili.com/xlive/web-room/v1/dM/gethistory'headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64......
  • 简单使用
    publicclassStateListenerimplementsApplicationListener<ContextRefreshedEvent>{@ResourceprivateConnectionFactoryconnectionFactory;@BeanpublicQueueserviceQueue(){returnnewQueue(SERVICE_QUEUE);}/**......