透過 SSH Tunnel 來進行 port selfupdate

因為工作的地方網路被擋掉很多 port,所以 MacPorts 的 selfupdate 走的 rsync 也不能用了,理論上應該可以走一些 ssh tunnel 來達成,所以跟著 — Tunneling rsync through SSH to permit selfupdate from behind a firewall — 描述的作法,也設定了一組。

首先,要有一組可以正常 ssh 連線的主機: ex. foo.example.bar

透過在 ssh 主機上執行 nc 程式來 mirror rsync.macports.org

此時若出現

表示成功的 mirror。

建立一組 key 可以免除登入時輸入帳號密碼的繁瑣

在 public key file: macports_rsync_key.pub 前附加

有個 shell script 可以簡單的完成這任務

將 macports_rsync_key.pub 上傳到 ssh 主機的 ~/.ssh/ ,若已有 authorized_keys 便附加於其後,若無,將 macports_rsync_key.pub 更名為 authorized_keys

同時存在多筆 identity 時會發生一些問題,解決的方法請見 — 使用多個 Identity 登入單一 Host

此時若執行

若出現

表示成功。

修改 /opt/local/etc/macports/macports.conf,於 rsync_options 加入

目前這樣就可以透過 ssh tunnel 來進行 port selfupdate 啦!

2012.09.01

Leave a Reply