1、首选有一个远程的SSH帐号和密码。
2、通过如下命令即可实现:
ssh -D 7070 -g user@serverip
ssh 命令的
- -D [bind_address:]port 参数,可以在bind_address 的 port 端口提供代理服务;
- -g 参数则允许其他主机连接到 -D 在本地创建的代理服务上来。
自动连接
如果你想让连接长期保持,可以写个脚本来保证因为网络原因断线的话可以自动重连。Linux平台ssh默认不支持把密码作为参数,不过有sshpass可以搞定,下载:http://sourceforge.net/projects/sshpass/files/latest/download。然后解压,编译:[mw_shl_code=bash,true]tar zxf sshpass-1.05.tar.gz
cd sshpass-1.05/
./configure --prefix=/home/user/proxy/sshpass
make
make install[/mw_shl_code]
完成后会将sshpass安装在:/home/user/proxy/sshpass目录(貌似ubuntu下可以直接apt-get install sshpass)。切换到该目录,执行命令格式如下:
sshpass -p "password" ssh -D 7070 -g user@serverip 然后写脚本autossh.sh,内容如下: [mw_shl_code=bash,true]#!/bin/bash
while [ '' == '' ]
do
ssh_d_process_num=`ps aux|grep -E 'ssh \-' |grep -v grep |wc -l`
if [ "$ssh_d_process_num" == "0" ]; then
/home/user/proxy/sshpass -p "password" ssh -D 7070 -g user@ServerIP &
fi
sleep 300
done[/mw_shl_code] 执行一下这个脚本就可以了。sleep 300代表300秒查看一次,可以根据需要调整。也可以配置到~/.profile脚本,使系统启动时自动执行该脚本。
本地下载sshpass:
sshpass-1.05.tar.gz
(96.06 KB, 下载次数: 13346)
开机连接
另外一个设置自动开启脚本的办法需要用到expect,用法如下:
[mw_shl_code=bash,true]#!/usr/bin/expect
set timeout 60
spawn /usr/bin/ssh -D 7070 -g user@ServerIP
expect {
"*yes/no*" { send "yes\r"; exp_continue }
"*password:" { send "your_password\r" }
}
interact {timeout 60 { send " "} }[/mw_shl_code]
|