目的:
客戶端 -> 中轉(zhuǎn)機(jī) (如阿里云上的機(jī)器)-> 目標(biāo)機(jī)器 (如家里的機(jī)器)
準(zhǔn)備工作
- 目標(biāo)機(jī)器,安裝 autossh
$ yum install autossh - 開啟 中轉(zhuǎn)機(jī)端口(略)
中轉(zhuǎn)機(jī)
$ ssh -fCNL *:(port A):localhost:(port B)localhost
實(shí)現(xiàn) :port A => port B
目標(biāo)機(jī)
$ ssh -fCNR (port B):localhost:(port C) root@(中轉(zhuǎn)機(jī)IP)
實(shí)現(xiàn) :中轉(zhuǎn)機(jī)port B => 目標(biāo)機(jī) port C
測試 ssh
$ ssh -p (port A) root@(中轉(zhuǎn)機(jī)IP)
實(shí)現(xiàn) :?? => 中轉(zhuǎn)機(jī) Port A => 中轉(zhuǎn)機(jī)Port B => 目標(biāo)機(jī) Port C
開啟 ssh ping
$ vi ~/.ssh/config
加入ServerAliveInterval 60
$ service sshd restart
ssh 不穩(wěn)定,改成 autossh
目標(biāo)機(jī)
- $ ps -ef | grep ssh // 查看 之前的 轉(zhuǎn)發(fā)命令
- kill 掉之前的轉(zhuǎn)發(fā)進(jìn)程
- ssh-keygen,回車,回車,回車 (已有,可跳過)
- ssh-copy-id root@中轉(zhuǎn)機(jī)IP, 輸入密碼,成功后退出
- autossh -M 6677 -fCNR (port B):localhost:(port C) root@(中轉(zhuǎn)機(jī)IP)
開機(jī)啟動(dòng)
不會(huì)腳本, 使用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.itdecent.cn/p/c23843393c17
其它
如果 中間遇到問題,用下面命令 查找,殺掉進(jìn)程,重試
ps -ef | grep ssh
kill xxx
kill -9 xxx