目的:
客户端 -> 中转机 (如阿里云上的机器)-> 目标机器 (如家里的机器)
准备工作
- 目标机器,安装 autossh
$ yum install autossh - 开启 中转机端口(略)
中转机
$ ssh -fCNL *:(port A):localhost:(port B)localhost
实现 :port A => port B
目标机
$ ssh -fCNR (port B):localhost:(port C) root@(中转机IP)
实现 :中转机port B => 目标机 port C
测试 ssh
$ ssh -p (port A) root@(中转机IP)
实现 : => 中转机 Port A => 中转机Port B => 目标机 Port C
开启 ssh ping
$ vi ~/.ssh/config
加入ServerAliveInterval 60
$ service sshd restart
ssh 不稳定,改成 autossh
目标机
- $ ps -ef | grep ssh // 查看 之前的 转发命令
- kill 掉之前的转发进程
- ssh-keygen,回车,回车,回车 (已有,可跳过)
- ssh-copy-id root@中转机IP, 输入密码,成功后退出
- autossh -M 6677 -fCNR (port B):localhost:(port C) root@(中转机IP)
开机启动
不会脚本, 使用python.
/autostart/ssh_transmit.py:
# -*- coding:utf-8 -*-
import os
cmd = [
"autossh -M 6677 -fCNR xxxx:localhost:xxxxxx"
]
for c in cmd:
os.system(c)
/etc/rc.d/rc.local
加入 : python /autostart/ssh_transmit.py
为了万无一失,可以配合
http://www.jianshu.com/p/c23843393c17
其它
如果 中间遇到问题,用下面命令 查找,杀掉进程,重试
ps -ef | grep ssh
kill xxx
kill -9 xxx
参考: http://www.jianshu.com/p/057e3266f380