以前、
(QEMU)ゲストOSのFreeBSDから、外の世界(インターネット)にアクセスする
で紹介した、PuTTYのポートフォワーディング機能を使って、QEMUの中の人のFreeBSDから、QEMUの外のProxyサーバに接続する方法は、どういうわけか、通信が途中できれてしまうらしく、まったく信頼性がありません。
なんとなく、PuTTYの代わりにTTSSHを使ったら、とっても調子よく、通信できるようになりました。
■SSH1プロトコルを有効にする
今のFreeBSDは、デフォルトでは、SSH1(SSHのversion1で使っていたプロトコル)では、ログインできなくなっています。これは、SSH1はセキュリティ的に問題があるとされているからです(telnetにくらべたらましなきもしますが)。そのため、SSH2に対応したPuTTYを使用していました。
さて、TTSSHは、SSH1にしか対応していません。TTSSHでログインするには、FreeBSDのsshdの設定を変更する必要があります。
その方法ですが、まず、/etc/ssh/sshd_configを以下の太字部分のように書き換えます。
Port 22
#Protocol 2
Protocol 2,1
#ListenAddress 0.0.0.0
#ListenAddress ::
これで、SSH1にも対応するようになります。
# Change to yes to enable built-in password authentication.
#PasswordAuthentication no
PasswordAuthentication yes
#PermitEmptyPasswords no
(こんなの昔設定したかな?という気がするのですが)こっちは、なぜか、ログインパスワード認証が使えず、公開鍵(RSA)での認証しか許してもらえなかったので、追加しました。まだ、SSHの公開鍵の設定とかをやってないので、仕方ないので、とりあえずこうしておきます。
設定を反映させるために、sshdを再起動します。
# /etc/rc.d/sshd restart
これで、SSH1でログインできます。
■TTSSHのポートフォワーディング機能の設定
PuTTYで使った3128番のポートはそのままにしておき、別の8080番を使うことにします。TTSSHの[Setup]-[SSH Forwarding]で、こんなかんじで登録することになります。
ログインしなおさないと、この設定は有効にならないそうです。おっと、ログアウトするまえに、ちゃんと[Setup]-[Save setup]でINIファイルに設定を保存しておいてください。
■環境変数でProxyサーバーの指定
8080番にしたので、こうなります。
setenv http_proxy http://localhost:8080/
setenv ftp_proxy http://localhost:8080/
setenv no_proxy localhost
■試してみる
ためしに、パッケージのxorg-clients(X Window Systemのさまざまなクライアントプログラム)をインストールしてみました。
freebsd# pkg_add ftp://ftp2.jp.freebsd.org/pub/
FreeBSD/ports/i386/packages-5-stable/x11/
xorg-clients-6.8.2.tbz
PuTTYだと、なんどやり直しても正常にダウンロードできず、パッケージファイルの末尾がかけているらしく、しかも、いやなことに、不完全な状態でパッケージがインストールされたことにされてしまいます。
ところが、TTSSHのポートフォワーディングを使うと、1発でインストールできてしまいました。気のせいだとしても、気分がいいので、とりあえず、これからはこっちを使ってみることにします。
はじめまして、初心者なのですけれど教えていただけたら助かります。ターミナルエミュレーターでサーバーにつながるのですが黒い四角の画面だけで文字がまったく入力できません。まったく知識がないのですがどうしたらいいのか困っています。SSHサーバーの設定を変更しなければならないところあるんじゃないかなと思うのですけれど・・osはsentosです。sshd_configを書き換える部分があると思いますが・・すみません、まったくの初心者で・・
返信削除