原文地址: 傳送門
雖然折騰PcmanFM沒什麽成效,卻終於知道如何讓SSH通過代理了。這麽一來,使用GitHub和Launchpad都方便了不少。
這是通過SSH的Proxycommand來完成的。可以用
man ssh_config
來查看相關信息。
通過SSH代理(SSH over SSH)
使用nc命令(netcat)實現,假設本地SSH代理的監聽端口是3000,則ProxyCommand為
ProxyCommand nc -x 127.0.0.1:3000 %h %p
其中%h表示目標地址,%p是目標端口。這句可以用在命令行裏,例如
ssh -oProxyCommand="nc -x 127.0.0.1:3000 %h %p" [email protected]
或者寫入config文件(參見 使用SSH CONFIG )
Host 名稱
HostName 域名/IP
User 用戶
ProxyCommand nc -x 127.0.0.1:3000 %h %p
nc也可以用於HTTPS代理,這需要指定所使用的協議,即添加 -X connect 參數。比如ssh_config中的例子
ProxyCommand /usr/bin/nc -X connect -x 192.0.2.0:8080 %h %p
netcat也有很多其他用途,有興趣可以看看
通過HTTP代理(SSH over HTTP)
需要corkscrew這個軟件
sudo aptitude install corkscrew
基本的語句是
ProxyCommand corkscrew 代理服務器地址 端口 %h %p
如果HTTP代理需要用戶名/密碼驗證,則需要寫上代理驗證文件。假設代理服務器是192.168.0.1:808。用戶名密碼是name:pass,打算存放在~/.ssh/proxyauth。則有
ProxyCommand corkscrew 192.168.0.1 808 %h %p ~/.ssh/proxyauth
新建~/.ssh/proxyauth文件,寫上
name:pass
為dput設置代理(PPA上傳)
很多時候連接到Launchpad的速度是非常慢的,找個好的代理可以改善這一情況。下載給apt設置代理就行了,方法多樣。上傳就需要讓dput能通過代理,而它似乎沒有內建的代理支持?不過dput支持sftp上傳,也就可以使用給SSH設代理的方式來進行。
要使用sftp上傳方式,先要生成相應的SSH key,在終端下執行
ssh-keygen -t rsa
全部默認按回車,這裏沒有設置密碼。
到launchpad的個人主頁上去,找到“SSH keys:“,點擊旁邊的小圖標進行編輯。將~/.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
User test
ProxyCommand (相應的代理命令,如上)
註意:要安裝bzrtools包才能正常上傳。。
Tags:
文章來源: