SSH ProxyCommand 实践
在阿里上搭了典型的 Nginx + APP server 的架构:
即,只有 Nginx 服务器与公网链接。然后,每次部署升级服务器都要先 SSH 到 Nginx 再 SSH 到 server1 及 server2。问题来了,怎样才能快速有效的管理服务器?
上 Puppet、Chef 这样的配置管理工具?一个手掌能数过来的服务器没必要啊,随意 Version 0 诞生了。
Version 0
Ver0 总结起来就是基于 SSH 隧道的 Python 脚本,具体可以参见 简易自动化部署服务器集群。
在实际使用中发现,在 MAC OS 下每次通过隧道自动登录 APP server 均不能成功。于是,有了 Version1。
Version 1
OpenSSH 有个 ProxyCommand 配置选项,可以配置客户端通过一个代理服务器上的 netcat 与内网服务器(与代理服务器同一内网)进行通信。配置如下(使用秘钥鉴权):
Host your host alias name, such as test.cnblog
HostName your host ip
User xxx
ProxyCommand none
IdentityFile path of your private ssh key file
PasswordAuthentication no
然后,配置 APP server:
Host webserver1
HostName xxxx.xxxx.xxxx.xxxx
User xxx
ProxyCommand ssh test.cnblog nc %h %p
IdentityFile path of your private ssh key file
此时,ssh webserver1
就可以直接访问 APP server1 了,写个自动脚本什么的也就很简单了。
当然,以上操作成功的前提是:所有用到的 SSH 公钥都已经传输到对应服务器了。
后话
在 Ver1 过程中发现,只要建立隧道时使用 ssh -NL
,在 MAC 下也可以通过隧道自动登录到 APP server1 了。
SSH ProxyCommand 实践的更多相关文章
- SSH开发实践part1:Spring与Hibernate整合
1 之前把SSH看完了,现在从头开始进行项目实践.现在讲整个过程中的点滴记录下来,希望对后来者有参考. 2 SSH是一个轻量级的java开发框架,struts负责MVC开发模式中的controller ...
- Window下使用Xshell连接VirtualBox中CentOS SSH最佳实践
网上已经有非常多讲怎样连接VMware的文章.可是针对一些可能遇到的细节没有讲全. 这里会有一个非常 实际的样例,附带全部软件的链接,保证成功. 最佳实践什么的都是骗人的. 1.安装VirtualBo ...
- SSH proxycommand 不在同一局域网的机器ssh直连
本地和192.168.1.10不在同一个网络,可以通过jumpserver跳转过去,操作如下 选项 -L 本机端口 -f 后台启用,可以在本机直接执行命令,无需另开新终端 -N 不打开远程shell, ...
- SSH ProxyCommand
简单的说就是SSH层面的代理服务器,实现通过跳板机执行SSH相关命令到目标机器的代理服务.
- SSH开发实践part4:Spring整合Struts
1 好了,前面spring与hibernate的整合开发我们基本上讲完了,现在要开始服务层的开发,也就是处理事务的action,在这里我们需要引入spring与struts的整合.也就是将action ...
- ssh-agent && ssh-agent forward && SSH ProxyCommand
http://blog.csdn.net/sdcxyz/article/details/41487897 https://developer.github.com/guides/using-ssh-a ...
- SSH开发实践part3:hibernate继承映射
0 大家好.上次讲了关于hibernate中双向1-N的映射配置,可以参考:http://www.cnblogs.com/souvenir/p/3784510.html 实际项目中,对象间的关系比较复 ...
- SSH开发实践part2:双向1-N连接配置
1 OK,上一篇已经介绍了项目开发的前期准备工作,具体内容可以参考:http://www.cnblogs.com/souvenir/p/3783686.html 按照开发步骤,我们现在已经可以开始进行 ...
- [转] ssh穿透??未验证。。。
一. SSH ProxyCommand 实践 http://www.cnblogs.com/shanpow/p/4264867.html 二. SSH穿越跳板机:一条命令跨越跳板机直接登陆远程计算机 ...
随机推荐
- HDU5883 The Best Path(欧拉回路 | 通路下求XOR的最大值)
本文链接:http://www.cnblogs.com/Ash-ly/p/5932748.html 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=588 ...
- powershell 性能测试小脚本
powershell 性能测试: 转载请注明: 仰望高端玩家的小清新 http://www.cnblogs.com/luruiyuan/ 1. 将待测试的脚本封装在代码块中 2. 使用 Get-Ch ...
- Python并发编-用Event,线程检测数据库连接的例子
尝试3次连接数据库 import time import random from threading import Thread,Event def connect_db(e): count = 0 ...
- Dfs【P2052】 [NOI2011]道路修建
Description 在 W 星球上有 n 个国家.为了各自国家的经济发展,他们决定在各个国家 之间建设双向道路使得国家之间连通.但是每个国家的国王都很吝啬,他们只愿 意修建恰好 n – 1条双向道 ...
- hdu 1372Knight Moves
E - Knight Moves Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Su ...
- HDU 6194【后缀数组】
题目链接[http://acm.hdu.edu.cn/showproblem.php?pid=6194] 题意: 给你一个长度不大于1e5的字符串,然后然你判断其子串严格出现k次的子串个数. 题解: ...
- js使用s:property标签接收json格式数据
js使用s:property接收json数据时,会出现字符被转译的错误. 错误如下: 引号会被转译成'"'字符,导致解析不了. 错误原因: html的s:property接收不会出错,而js ...
- Zookeeper启动和集群选举
1. QuorumPeerMain运行 1)判断是采用单实例模式还是多实例模式启动QuorumPeerMain 2)在多实例模式下,加载启动参数中指定的配置文件 3)启动QuorumPeer publ ...
- (转)资源监控工具Spotlight监测LINUX
个人1.安装spotlight,Spotlight on Unix2.配置spotlight,注意spotlight默认不能使用root用户进行连接,需要用户自己创建一个具有root权限的用户.(1) ...
- 读书笔记_Effective_C++_条款二十六:尽可能延后变量定义式的出现时间
这个条款从字面意思还是很好理解的,就是在使用这个变量前才去定义,而不是很早就定义了它,而在很后面的时候才去使用.这个条款只适用于对变量声明位置没有要求的语言,比如C++.对于像C或者一些脚本语言,语法 ...