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 わかりやすい名前