sshでやってみた

このサイト参考。


僕が普段使わされてるproxyは認証がかかってるので試しにproxyにtelnetしてみる。

% telnet PROXY_HOST PROXY_PORT
Trying PROXY_HOST...
Connected to PROXY_HOST (PROXY_HOST).
Escape character is '^]'.
CONNECT どこか:443 HTTP/1.0
...
HTTP/1.0 407 Proxy Authentication Required
...
Proxy-Authenticate: Basic realm="xxxx...xxxx"

Basic認証だとわかるので、ユーザ名とパスワードをBase64エンコードしたものを作っておく。
USER: hoge、PASS: fugaの場合、

% echo -n 'hoge:fuga' | base64
aG9nZTpmdWdh

やってみると、

% telnet PROXY_HOST PROXY_PORT
Trying PROXY_HOST...
Connected to PROXY_HOST (PROXY_HOST).
Escape character is '^]'.
CONNECT どこか:443 HTTP/1.0
Proxy-Authorization: Basic aG9nZTpmdWdh

繋がったw


あとは.ssh/configに

Host わかりやすい名前
        HostName どこか
        Port 443
        ProxyCommand /home/hoge/bin/proxy %h %p

とか書いておく。


/home/hoge/bin/proxyが必要なので、最初の参考サイトのproxy-klabをベースにProxy-Authorizationに対応したものをでっちあげる。

$PROXY_KLAB = "<PROXY_HOST>";
$PROXY_KLAB_PORT = <PROXY_PORT>;
$PROXY_AUTH = "<Base64エンコードしたナニカ>";  ←追加
...
sub login {
    &receive(0.1);
    &send("CONNECT $HOST:$PORT HTTP/1.0\r\n");  ←変更
    &send("Proxy-Authorization: Basic $PROXY_AUTH\r\n\r\n");  ←追加
...

で、以下のコマンドを打つと…

% ssh わかりやすい名前