9. SSHクライアントのインストールと設定
ここでは、Oracle Linux 8のSSHサーバーと、WindowsマシンでSSH接続をするTera Termのインストールと設定を説明します。
Tera Termは古くから存在するSSHクライアントで、定番ソフトです。
Windowsマシン上で、こちらのサイトからダウンロードし、実行してインストーラーを起動します。インストーラーの各種設定は、デフォルトで問題ありません。ただ、私はクイック起動登録をしなかったので、最後の"追加タスクの選択"画面で、"クイック起動に Tera Term のショートカットを作る"のチェックだけは外しました。

次に、Tera Termで秘密鍵と公開鍵を作り、設定します。この二つの鍵のペアによって、強力な暗号化が実現しますので、ここで作ったファイルは、決して他人には渡さないでください。
エクスプローラーを起動し、適当な場所に、鍵の保管用のフォルダを作成します。ここでは、Cドライブ直下にssh-keyフォルダを作ったとします。例としてssh-key等というわかりやすいフォルダ名にしていますが、実際は本人にしかわからないフォルダ名にしておいてください。管理者であるoluserの鍵は、万が一にも他人に渡すわけにはいきませんので。
Tera Termを起動します。接続先の入力を求められますので、"キャンセル"ボタンを押します。

"設定(S)"タブを押し、"SSH鍵生成(N)..."を押します。

"生成(G)"ボタンを押します。

パスフレーズを入力します。このパスフレーズというのは、パスワードよりは長くて覚えやすい文章のことです。例えば、 8zi dayo zenninn syuugou や rennkinnzyutu ha toukakoukann のように、間に空白を挟んで構いませんので、それなりの長さの文章を入力してください。
"公開鍵の保存(I)"を押します。ここで、先ほど作った鍵の保管場所のフォルダ(c:\ssh-key\)を選択し、保存します。
"秘密鍵の保存(P)"を押します。同じように、c:\ssh-key\ フォルダに保存します。
"閉じる(C)"を押して画面を閉じ、いったんTera Termを終了します。
エクスプローラーを開き、以下のようにファイル名をそれぞれ変更します。
注意
デフォルトの設定では、.pubの部分が表示されていないため、変更できません。.pubまで含めたファイル名が確認できない人は、エクスプローラーの"表示"タグを開き、"ファイル名拡張子"のところにチェックをいれ、id_rsa.pubのファイル名が表示されるようにしてください。
変更前 | 変更後 |
---|---|
id_rsa | identity |
id_rsa.pub | authorized_keys |
特に、公開鍵であるauthorized_keysのファイル名は、正確に変更してください。後にサーバーマシンに送りますので。私は最後のsを忘れて書き換えたため、認証が通らないとう、凡ミスをしてしまいました。実は、id_rsa(秘密鍵)の名前は、なんでも使えます。ただ、identityにリネームしておくと、Tera Termで指定するときに、デフォルトで選択されますので、少しだけ楽になります。
ちなみに、公開鍵ファイル名は、/etc/ssh/sshd_configの
AuthorizedKeysFile .ssh/authorized_keys
で、指定されています。
USBメモリを用意し、直下にauthorized_keysファイルを移動します。コピーではなく、移動してください。秘密鍵と公開鍵を同じ場所で保管しておくのは、非常に危険です。また、この設定では、サーバーに持っていったときに、日本語のフォルダ名やファイル名は正しく表示されないため、USBメモリの直下におくようにします。
サーバーマシンに戻って、設定を続けます。oluserでログインし、USBメモリやUSBドライブの、マウントポイントと呼ばれるディレクトリを作成します。DVDドライブ等と共用で構わないという人は、この作業は必要ありません。その場合は、以下の/usbの部分を、/media等、存在するディレクトリに置き直してください。
sudo mkdir /usb
以下の例は、oluserの登録例です。まず、公開鍵の置き場所のディレクトリを作ります。
cd ~
mkdir ./.ssh
chmod 700 .ssh/
最後のchmodコマンドは、必ず実行してください。パーミッション(許可属性)がデフォルトのままですと、緩すぎて接続時にエラーとなりますので。
USBメモリをサーバーに接続してから以下のコマンドを実行し、USBメモリを/usbにつなげます(マウントといいます)。
sudo mount /dev/sdb1 /usb
ちなみに、/dev/sdb1の部分は、環境によって若干異なる可能性があります。SATAとよばれる規格のHDD/SSDを複数接続していたり、USBドライブやUSBメモリを複数接続したりしていると、/dev/sdc1, /dev/sdd1, /dev/sde1 のように、最後のアルファベットが大きくなっていきます。逆にNVMeと呼ばれる規格のSSDにインストールした場合は、USBメモリが/dev/sda1になります。
ls /dev/sd*
のコマンドを実行して確認し、一番アルファベットの大きなものを指定するといいでしょう。これらのファイルの詳しい意味は、参考書を参照してください。
公開鍵を移動します。ただ、USBメモリはroot権限がないと読めないため、sudoコマンドを利用します。
sudo mv /usb/authorized_keys .ssh/
ファイルの所有者を変更し、パーミッション(許可属性)を変更します。以下の設定では、本人のアカウントでだけ、読めるようにしています(正確には、rootユーザーなら、読み書きできます)。これをしないと、やはり、接続時にエラーになります。
sudo chown oluser:oluser .ssh/authorized_keys
chmod 400 .ssh/authorized_keys
USBメモリを外す前に、アンマウントします。
sudo umount /usb
必ずこのコマンドを実行してから、USBメモリを外してください。
以上でoluserのSSHサーバーへの登録は完了です。次は、oluserでの接続確認をします。
Windowsマシンに戻り、Tera Termを起動します。"ホスト(T)"のところにwww.example.netと入力し、”TCPポート#(P)”のところに、先ほど設定した10022を入力し、"OK"ボタンを押します。

この時、最初だけ確認画面が出てきます。

これは、「このホスト繋いだことないけど、本物で間違いない?」という意味なので、そのまま"続行(C)"を押して閉じます。
"ユーザー名(N):"にoluserと入力します。"パスフレーズ(P):"に、設定したパスフレーズを入力します。間違ってパスワードを入れないようにしてください。鍵を作るときに使用したパスフレーズです。
"認証方式"のところの、"RSA/DSA/ECDSA/ED25519鍵を使う"をチェックし、"秘密鍵(K)"の右側にある、"..."ボタンを押して、先ほど作ったidentityファイルを指定します。

"OK"ボタンを押して接続します。設定がちゃんとできていれば、これでWindowsマシンから、サーバーのメンテナンス作業ができるようになります。
