透过代理连接SSH
虽然折腾没什么成效,却终于知道如何让SSH通过代理了。这么一来,使用和都方便了不少。
这是通过SSH的来完成的。可以用
来查看相关信息。
通过SSH代理()
使用nc命令()实现,假设本地SSH代理的监听端口是3000,则为
-x127.0.0.1:3000%h%p
其中%h表示目标地址,%p是目标端口。这句可以用在命令行里,例如
ssh-oProxyCommand=nc-x127.0.0.1:3000%h%pgit@github.com
或者写入config文件(参见使用SSHCONFIG)
Host名称
HostName域名/IP
User用户
ProxyCommandnc-x127.0.0.1:3000%h%p
nc也可以用于HTTPS代理,这需要指定所使用的协议,即添加-Xconnect参数。比如ssh_config中的例子
ProxyCommand/usr/bin/nc-Xconnect-x192.0.2.0:8080%h%p
netcat也有很多其他用途,有兴趣可以看看
通过HTTP代理(SSHoverHTTP)
需要corkscrew这个软件
sudoaptitudeinstallcorkscrew
基本的语句是
ProxyCommandcorkscrew代理服务器地址端口%h%p
如果HTTP代理需要用户名/密码验证,则需要写上代理验证文件。假设代理服务器是192.168.0.1:808。用户名密码是name:pass,打算存放在~/.ssh/proxyauth。则有
ProxyCommandcorkscrew192.168.0.1808%h%p~/.ssh/proxyauth
新建~/.ssh/proxyauth文件,写上
name:pass
为dput设置代理(PPA上传)
很多时候连接到Launchpad的速度是非常慢的,找个好的代理可以改善这一情况。下载给apt设置代理就行了,方法多样。上传就需要让dput能通过代理,而它似乎没有内建的代理支持?不过dput支持sftp上传,也就可以使用给SSH设代理的方式来进行。
要使用sftp上传方式,先要生成相应的SSHkey,在终端下执行
ssh-keygen-trsa
全部默认按回车,这里没有设置密码。
到launchpad的个人主页上去,找到“SSHkeys:“,点击旁边的小图标进行编辑。将~/.ssh/id_rsa.pub的内容粘贴到文本框里,提交,这样就导入了公钥
在家目录下新建~/.dput.cf文件,内容如下(假设用户名是test)
[ppa]
fqdn=ppa.launchpad.net
method=sftp
incoming=~%(ppa)s/ubuntu
login=test
编辑~/.ssh/config文件,添加如下
Host*.launchpad.net
Usertest
ProxyCommand(相应的代理命令,如上)
注意:要安装bzrtools包才能正常上传。。
最后:我果然还是不习惯截图啊