轉-透過代理連接SSH

分類:IT技術 時間:2017-02-15

原文地址: 傳送門

雖然折騰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:

文章來源:


ads
ads

相關文章
ads

相關文章

ad