Server

9. SSHクライアントのインストールと設定

 ここでは、Oracle Linux 8のSSHサーバーと、WindowsマシンでSSH接続をするTera Termのインストールと設定を説明します。

 Tera Termは古くから存在するSSHクライアントで、定番ソフトです。

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

Tera Termインストール

 次に、Tera Termで秘密鍵と公開鍵を作り、設定します。この二つの鍵のペアによって、強力な暗号化が実現しますので、ここで作ったファイルは、決して他人には渡さないでください。

 エクスプローラーを起動し、適当な場所に、鍵の保管用のフォルダを作成します。ここでは、Cドライブ直下にssh-keyフォルダを作ったとします。例としてssh-key等というわかりやすいフォルダ名にしていますが、実際は本人にしかわからないフォルダ名にしておいてください。管理者であるoluserの鍵は、万が一にも他人に渡すわけにはいきませんので。

 Tera Termを起動します。接続先の入力を求められますので、"キャンセル"ボタンを押します。

Tera Termで鍵作り1

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

Tera Termで鍵作り2

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

Tera Termで鍵作り3

 パスフレーズを入力します。このパスフレーズというのは、パスワードよりは長くて覚えやすい文章のことです。例えば、 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"ボタンを押します。

Tera Term接続1

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

Tera Term接続2

 これは、「このホスト繋いだことないけど、本物で間違いない?」という意味なので、そのまま"続行(C)"を押して閉じます。

 "ユーザー名(N):"にoluserと入力します。"パスフレーズ(P):"に、設定したパスフレーズを入力します。間違ってパスワードを入れないようにしてください。鍵を作るときに使用したパスフレーズです。

 "認証方式"のところの、"RSA/DSA/ECDSA/ED25519鍵を使う"をチェックし、"秘密鍵(K)"の右側にある、"..."ボタンを押して、先ほど作ったidentityファイルを指定します。

Tera Term接続3

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

Tera Term接続4