翱翔天空 4 ssh 远程登录的安全shell
ssh 是用于远程登录的工具。ssh周边的工具包括scp 远程拷贝, sftp 远程安全ftp,sshfs挂载远程文件系统。
本文主要介绍ssh通过sock5代理访问远程机器,主要用于本机不能访问远程机器,通过代理来绕过限制访问远程机器的情形。
这里以访问github.com为例,想ssh github.com以便通过ssh协议下载github 上的代码。
假定本地机器不能访问github 但能访问代理,代理可访问github
1 代理服务器上安装sock5服务器
这里使用dante软件作sock5服务
假定代理服务器为centos 系统,安装方法
1.1 安装Dante,执行如下脚本
#!/bin/bash
cd ~
yum install gcc make bison flex rpm-build.x85_64
yum install openldap-devel.x86_64 pam-devel.x86_64 openssl-devel.x86_64 libgssapi-devel.x86_64 libgssapi-devel.x86_64
wget -c http://www.inet.no/dante/files/dante-1.4.0-pre1.tar.gz
#tar zxf dante-1.4.0-pre1.tar.gz
#cd dante-1.4.0-pre1/
#./configure
#make
#make install
rpmbuild -ta dante-1.4.0-pre1.tar.gz
cd ~/rpmbuild/RPMS/x86_64/
sudo rpm -ivh dante-1.4.0-0.pre1.el6.x86_64.rpm
1.2 在/etc下创建文件sockd.conf ,修改文件中的内外网IP,文件内容:
logoutput: /var/log/danted.log
internal: 192.168.115.72 port = 1080 #替换为代理的内网IP
external: 61.135.169.72 #替换为代理的外网IP
method: none
#user.privileged: proxy
user.notprivileged: nobody
#user.libwrap: nobody
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect disconnect
}
pass {
from: 0.0.0.0/0 to: 0.0.0.0/0 port gt 1023
command: bind
log: connect disconnect
}
pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
command: connect udpassociate
log: connect disconnect
}
1.3 启动dante
/etc/init.d/sockd start
2 本地机器 安装connect 程序
2.1 下载connect.c
2.2 编译安装
$ gcc connect.c -o connect
$ mv connect /usr/local/bin
3 本地机器 在.ssh中创建文件config
加入如下内容
Host github.com
Hostname github.com
User git
ProxyCommand ~/.ssh/proxy-wrapper '%h %p'
4 本地机器 在.ssh中创建文件proxy-wrapper 并将之权限改为可执行,注意将文件中的ip地址为1.2中设置的内网IP.
$ cat proxy-wrapper
#!/bin/bash
connect -S 192.168.115.72:1080 $@ #注意这里的ip为1.2中设置的内网IP
5 大功告成,试试吧,在本机机器上使用ssh协议clone
git clone git@github.com:jiayuehua/unpv22e.git
本地机器成功的下载下来了自己在github上的代码,很棒吧。
* 如果你的代理服务器是ubuntu系统,可以下载dante.conf和install_dante.sh,按照1.2修改dante.conf中的内外网ip ,然后运行install_dante.sh便可安装和启动dante 服务。