通过ssh隧道连接

使用的机器:

A机器  IP  172.17.41.246

B机器  IP  172.17.41.245

C机器  IP  172.17.41.242

需求:C机器只允许B机器ssh登录,不允许其他任何机器ssh登录;现在想要A机器能ssh登录C机器,可以通过B机器建立隧道进行登录。

首先,在C机器上设置iptables只允许 B机器ssh

iptables -A INPUT -s 172.17.41.245 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

在A机器上执行命令建立隧道,需要输入B机器也就是172.17.41.245的密码

ssh -CfNg -L 5550:172.17.41.242:22 [email protected]

此处如果使用sftp不能登录时,可以使用下面命令替代上面命令建立隧道,比上面命令多个-n选项

ssh -CnfNg -L 5550:172.17.41.242:22 [email protected]

然后在A机器上开始登录C机器,输入C机器的root用户的密码后即可登录。

ssh [email protected] -p 5550

登录后查看IP

[[email protected] ~]# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:50:56:93:1F:D6
          inet addr:172.17.41.242  Bcast:172.17.41.255  Mask:255.255.254.0
          inet6 addr: fe80::250:56ff:fe93:1fd6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1088423 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1128560 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:153778919 (146.6 MiB)  TX bytes:631865288 (602.5 MiB)

参考:

http://www.cnblogs.com/youxin/p/5220916.html

http://blog.creke.net/722.html

http://blog.csdn.net/junmuzi/article/details/52241601

时间: 2024-08-02 07:01:16

通过ssh隧道连接的相关文章

JDBC远程从一个MySql数据库中的一张表里面读出数据(这个数据库需要用SSH隧道连接,大约8W条数据),然后分别插入到另一个数据库中的两张表里

package com.eeepay.lzj.db; import java.sql.Connection; import java.sql.Date; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import com.jcraft.jsch.JSch; import com.jcraft.jsc

配置SSH隧道访问Ubuntu服务器上的MongoDB

为了数据安全,在MongoDB的配置文件里,一般会把默认的27017端口port改为自定义的端口号,然后把允许访问的IP设为127.0.0.1(即主机本身).但是这样就会在开发的过程查看数据时带来麻烦,必须去服务器端或调用部署在服务器的API接口才能很好地可视化地查询数据.为了能在客户端也能使用可视化工具,可以建立一条SSH隧道,直接在客户端访问远程服务器的数据库. 本文例子基于以下开发环境: 服务器端:Ubuntu 16.04 x86_64,MongoDB 3.4.6 客户端:Windows1

调试利器:SSH隧道

欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 本文作者:ivweb 吴浩麟 原文出处:IVWEB社区 未经同意,禁止转载 在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问.但我们一般都会在本地开发,因为这能快速的看到源码修改后的运行结果.但当涉及到需要调用微信接口时,由于不和你在同一个局域网中的用户是无法访问你的本地开发机的,就必须把修改后的代码重新发布到线上域名所在的服务器才能去验证结果.每次修改都重新发布很繁琐也很浪费时间. 本文将教你

使用ssh隧道+privoxy实现Linux全局代理

使用ssh隧道+privoxy实现Linux全局代理 ssh简介 SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议.利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题.SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台.SSH在正确使用时可弥补网络中的漏洞.SSH客户端适用于多种平台.几乎所

ssh隧道代理连接

0x00 什么是SSH隧道 场景: 假设有两台主机: A主机为外网,B主机为内网通常来说外网主机A是无法直接连接到内网主机B的,这时如果要实现A主机通过ssh控制B主机,通常来说有两种方法: 1.端口映射: 将B主机的ssh端口映射到B的外网ip,当然这要通过设置防火墙来实现 2.ssh的反向连接: B主机通过ssh连接到A主机,并在A主机上打开一个端口进行监听.这时如果A主机连接本机的这个端口就可以实现控制B主机 0x01 建立本地SSH隧道   在我们计划建立一个本地SSH隧道之前,我们必须

SSH隧道技术----端口转发,socket代理

本文大部分参考引用加copy:http://blog.chinaunix.net/uid-20761674-id-74962.html 本文的受众 如果你遇到了以下问题,那么你应该阅读这篇文章 我听说过这种技术,我对它很感兴趣 我想在家里访问我在公司的机器(写程序,查数据,下电影). 公司为了防止我们用XX软件封锁了它的端口或者服务器地址. 公司不让我们上XX网站,限制了网址甚至IP. 公司不让我们看关于XX的信息,甚至花血本买了XX设备,能够对内容进行过滤.一看XX内容,链接就中断了. 我爸是

Navicat for MySQL用ssh功能连接远程数据库

转载自:http://holy2010.blog.51cto.com/1086044/518431 实现用本地的ssh隧道起到加密功能 在windows平台上运行Navicat for MySQL(http://www.navicat.com/  ) 1.连接connetcion进去设置 设置windows本地数据库账户和密码 2. 连接  linux平台ssh,设置服务器的账户和密码 上面配置好后,点击左下角的Test Connetion测试是否成功 利用Linux平台之间的隧道连接在研究中~

虚拟环境实现SSH隧道

1.实验目的 讲解如何建立SSH隧道,如何利用SSH隧道进行加密通信 在上一个实验中进行了流量重定向的简单介绍,那么SSH隧道跟重定向之间有什么差别呢?重定向不能保证传输数据的的安全性,使用SSH隧道我们能实现流量的双向加密通信. 2.实验环境准备 实验拓扑图: 虚拟机:Virtualbox 客户机A:32bit kali Linux,ip:1.1.1.10(Host-Only) 防火墙:m0n0wall,Lan Ip:1.1.1.1(两块虚拟网卡,一块Host-Only,一块桥接) 机器B:3

Python通过SSH隧道链接Kafka

Python通过SSH隧道链接Kafka 最近有一个需求需要连接Kafka,但是它只允许内网链接,但是有些服务跑在服务器上总没有在我本机调试起来爽,毕竟很多开发工具还是在客户端机器上用的熟练.于是我想到了通过SSH连接Kafka,至于怎么连接可以通过XShell.Proxifier等等,由于个人还是觉得自己写更灵活,所以我是用Python里的sshtunnel写的(有需要后面我也可以分享下),个人喜好啊,你们自行选择. 由于笔者这里的Kafka环境使用Zookeeper做分布式部署,有多个bro