以前、
(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発でインストールできてしまいました。気のせいだとしても、気分がいいので、とりあえず、これからはこっちを使ってみることにします。
「サーバーにつながる」と言ってるのは、ユーザー名とパスワードなどを入力してログインできた、という意味ですか?それとも、サーバーからは何のメッセージも表示されないということでしょうか。
sentosって、CentOSのことですか?(どちらにしても、私は使ったことがないです・・・)
ターミナルエミュレーターっていうのは具体的にどのソフトウェアのことですか?ここで書いているTTSSHはとても古いです。TeraTermを使いたいのでしたら、UTF-8 TeraTerm Pro with TTSSH2というのがあります。
もうちょっと情報があれば、何かアドバイスできるかもしれません・・・
想像で話をすすめますが、Puttyで黒い画面のまま先に進まないって場合だとしますと、その時点ではまだサーバーに接続さえもしていないか、もしくは即座に接続が切られたか、だと思われます(Puttyのタイトルバーにはinactiveとか表示されたりします)。
サーバーに接続できていない場合の原因としては、サーバー側でそもそもsshデーモンが動いていないとか、サーバー側のファイアウォールで接続が拒否されているとか、そういったことがまず思い浮かびます。
SSHのプロトコルバージョンとか、認証方式の種類などが原因で接続拒否されているのだったら、サーバー側のログを見れば即わかると思いますが・・・初心者だということなので、なかなかすぐにはわからないかもしれません・・・CentOSはまったくわからないのですが、一般的には、/var/log/あたりのディレクトリにログファイルがあります。
私の実体験では、sshd_configは書き換えることはあんまりないです。