SSH ProxyCommand 实践
2015-01-31 22:54
337 查看
在阿里上搭了典型的 Nginx + APP server 的架构:
![](https://images0.cnblogs.com/blog/691359/201501/312246219257819.png)
即,只有 Nginx 服务器与公网链接。然后,每次部署升级服务器都要先 SSH 到 Nginx 再 SSH 到 server1 及 server2。问题来了,怎样才能快速有效的管理服务器?
上 Puppet、Chef 这样的配置管理工具?一个手掌能数过来的服务器没必要啊,随意 Version 0 诞生了。
在实际使用中发现,在 MAC OS 下每次通过隧道自动登录 APP server 均不能成功。于是,有了 Version1。
然后,配置 APP server:
此时,
当然,以上操作成功的前提是:所有用到的 SSH 公钥都已经传输到对应服务器了。
在阿里上搭了典型的 Nginx + APP server 的架构:
![](https://images0.cnblogs.com/blog/691359/201501/312246219257819.png)
即,只有 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 ProxyCommand
- SSH proxycommand:利用跳板机让不在同一局域网的机器ssh直连
- ssh ProxyCommand
- SSH ProxyCommand
- ssh-agent && ssh-agent forward && SSH ProxyCommand
- Linux Command Tips:sftp, scp, ssh
- MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
- 应用 Command 模式进行流水号管理的最佳实践
- MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
- MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
- ubuntu firefox ssh autoproxy 翻墙
- Windows 7下Git SSH 创建Key的步骤(经个人实践win10环境下也可行)
- -bash:ssh:command not found
- Nginx源码分析与实践---ngx_command_t
- ssh-copy-id: command not found
- SSH开发实践part1:Spring与Hibernate整合
- MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
- 鸟哥私房菜实践(14)- PROXY
- 整合SSH java.lang.ClassCastException: xxx_$$_javassist_0 cannot be cast to javassist.util.proxy.Proxy