ホストOSからゲストOSにSSHでアクセスする
VMware PlayerにインストールしたUbuntuにopensshサーバーの設定を行い、ホストOSからSSHで接続してリモート操作を行えるようにするための設定方法。
以下の環境で設定を行いました。
ホストOS : windows7
ゲストOS : ubuntu11.10
SSHターミナルソフト : TeraTarm
opensshのインストール (Ubuntuでの作業)
端末を起動して以下のコマンドを実行します。
$sudo apt-get update $sudo apt-get install openssh-server
続いてSSHのモジュールもインストールします。
$sudo apt-get install ssh
opensshのコンフィグファイルの設定 (Ubuntuでの作業)
以下のコマンドでコンフィグファイルを開いて設定の変更をします。
$ sudo nano /etc/ssh/sshd_config
最初の接続方法としてID、PASSWORDの入力方式とするため以下の様に修正します。
PasswordAuthenticationはパスワード認証を許可するかどうかの設定。
#PasswordAuthentication yes (コメントを解除する) ↓ PasswordAuthentication yes
configの設定を変更した後は内容を適用させる為、以下のコマンドを実行します。
$sudo invoke-rc.d ssh reload
TeraTermの設定 (Windowsでの作業)
TeraTermを起動すると以下のダイアログが表示されるので、ホストにUbuntuのIPを入力して、SSHバージョンをSSH2に設定して「OK」をクリック。
※UbuntuのIPアドレスの確認方法はUbuntuの端末に「ifconfig」と実行して、「inetアドレス」に記述されている数字です。
続いて以下のダイアログが表示するのでユーザー名とパスフレーズをそれぞれ入力して、「プレインテキストを使う」にチェックをして「OK」をクリック。
以下の様に接続されていれば成功です。
これでクライアント(Windows)からUbuntuのサーバーに接続してリモート操作が出来る環境にはなりましたが、パスワードの認証だけではセキュリティ的にもあまりよろしくないので、公開鍵認証で接続する環境を設定します。
公開鍵認証とは何かというと、クライアントで秘密鍵と公開鍵を生成し、公開鍵の方をサーバーに登録することで、クライアントの秘密鍵とサーバーの公開鍵で照合を行い接続を認証するシステムです。
公開鍵と秘密鍵の作成 (Windowsでの作業)
TeraTermのメニューから「設定」→「SSH鍵生成」をクリック。
基本的にはデフォルトでチェックが入っている「RSA」を選択し、「生成」をクリックします。「公開鍵の保存」と「秘密鍵の保存」ボタンがアクティブになるので任意の場所に保存します。
「id_rsa」と「id_rsa.pub」の二つのファイルが出来ます。
「id_rsa」は秘密鍵なのでそのままクライアント側に保存。
「id_rsa.pub」は公開鍵で、こっちをサーバに登録します。
opensshに公開鍵を設定 (Ubuntuでの作業)
先程クライアント側で生成した公開鍵をUbuntuのホームフォルダに転送します。
続いて以下のコマンドを実行します。
$sudo mkdir .ssh(.ssh/ディレクトリがまだ作成されていない場合はこのコマンドを実行して作成します。) $sudo cat id_rsa.pub>>.ssh/authorized_keys
opensshのコンフィグファイルの設定(Ubuntuでの作業)
以下のコマンドでコンフィグファイルを開き設定を変更します。
$sudo nano /etc/ssh/sshd_config
以下の様に設定の変更を行います。
PermitRootLogin no (root ログイン許可) ChallengeResponseAuthentication no (チャレンジ・レスポンス認証) PasswordAuthentication no (パスワード認証) UsePAM no (PAM の使用)
コンフィグの設定をしたら内容を適用させます。
$sudo invoke-rc.d ssh reload
そして再起動をしておく。
$ sudo /etc/init.d/ssh restart