热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ssh跳板登录懒人大法

有的时候出于安全考虑,真正的工作服务器是不对外提供ssh连接的,需要先登录一个跳板服务器,然后在跳板服务器上再ssh到工作服务器,每次都要输两遍ssh命令对于我这种懒人来说真是折磨啊,经过实验,总结三个一劳永逸大法。现在假设有ABC三台机器,A是本地

有的时候出于安全考虑,真正的工作服务器是不对外提供ssh连接的,需要先登录一个跳板服务器,然后在跳板服务器上再ssh到工作服务器,每次都要输两遍ssh命令对于我这种懒人来说真是折磨啊,经过实验,总结三个一劳永逸大法。 现在假设有ABC三台机器,A是本地

有的时候出于安全考虑,真正的工作服务器是不对外提供ssh连接的,需要先登录一个跳板服务器,然后在跳板服务器上再ssh到工作服务器,每次都要输两遍ssh命令对于我这种懒人来说真是折磨啊,经过实验,总结三个一劳永逸大法。

现在假设有ABC三台机器,A是本地机器,B是跳板服务器(公网地址123.456.789.110),C是工作服务器(内网地址192.168.1.111).A可以访问B,但不能直接访问C,B可以直接访问C。

1、通过ssh端口转发命令

在B的命令行输入

ssh -CfNg -L 8833:192.168.1.111:22 userc@192.168.1.111

具体参数不解释了,不懂的可以参考http://qubaoquan.blog.51cto.com/1246748/292497。这句话的意思是当我访问B机器8833端口时,其实是在访问C的22端口
?

以后就可以直接在A机器命令行输入

ssh -p 8833 userc@123.456.789.110

就可以登录C机器了,这里要注意的是此处用户名是B登录C的用户名,而ip地址是B的ip地址,要和普通的ssh登录做区分。

这种方法和ssh翻墙原理相同,各位想fXXk GFW的童鞋可以发挥想象力。。。

2、通过proxycommand+netcat

这种方法不需要对B和C进行任何操作,只需要对A机器上的ssh_config文件做些修改就可以了

proxycommand是ssh的内置功能,而netcat更是黑客们居家旅行杀人越货必备之良品,netcat详解参考这篇博客:http://blog.csdn.net/michael493439861/article/details/7445454

回到我们需求,一般的服务器上都默认装有netcat。我们首先修改A机器上的ssh_config文件,添加这么几行

Host Cserver【随意取名】
HostName 192.168.1.111
Port 22 【C机器的ssh端口】
ProxyCommand ssh -p 9022【B机器的ssh端口】 userb@123.456.789.110 nc %h %p

然后在A机器的命令行输入

ssh userc@Cserver

见证奇迹的时刻来了。。。

3、无脑笨方法

我们知道ssh是可以直接执行远程命令的,于是,在A机器命令行输入:

ssh -t -p 9022【B机器ssh端口】 userb@123.456.789.110 "ssh userc@192.168.1.111"

?当然这还是要输入两次ssh命令,没有任何技术含量。无脑懒人可以把这个在.bashrc里面alias一下,记住要source哦。

个人感觉方法2原理上其实是方法3和方法1的结合,通过proxycommand执行远程nc命令,而这个nc命令的作用是建立一个tunnel。

声明:如未作说明,则本文为 渣滓洞【解旻的博客】 原创。转载务必注明出处。
注意:转载须保留全文,如需修改请联系作者。

本文永久地址:http://xieminis.me/?p=257

推荐阅读
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • GSIOpenSSH PAM_USER 安全绕过漏洞
    漏洞名称:GSI-OpenSSHPAM_USER安全绕过漏洞CNNVD编号:CNNVD-201304-097发布时间:2013-04-09 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • Django + Ansible 主机管理(有源码)
    本文给大家介绍如何利用DjangoAnsible进行Web项目管理。Django介绍一个可以使Web开发工作愉快并且高效的Web开发框架,能够以最小的代价构建和维护高 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了markdown[软件代理设置]相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
author-avatar
HurricaneCC
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有