Skip to the content.

ssh接続の手続き

本頁では,計算機の利用の導入として,ssh接続について説明する。 ここで登場するコマンドの使い方については割愛するので,自身でフォローしてみてほしい。

計算機への接続は,機密性をあげるために,ssh鍵認証を使ったアクセスが一般的。 ssh鍵はssh-keygenコマンドで作成でき,id_rsa.pubが公開鍵,id_rsaが秘密鍵にそれぞれ対応する。 この公開鍵と秘密鍵は相補的な関係にあるが,一方の鍵からもう一方の鍵を推測することはできない。 そのため,どちらかの鍵を失ったら,ssh鍵のペアをもう一度作成する必要がある。 このssh鍵を用いて,計算機へのアクセスの秘匿性を担保するためには,公開鍵を計算機上(および中継機上)に設置する

なお秘密鍵は,接続する端末に厳重に保管しておくこと。 パソコンを紛失するなどによって秘密鍵の漏洩が危惧される場合, 各計算機に登録済みの公開鍵を全て抹消すること (場合によってはサーバー管理者に連絡すること)。

1. ssh鍵のペア作成

ssh-keygenコマンドでssh鍵を作成する。 rsaタイプがよく使われるが,秘匿性を向上させた形式が続々登場しており, スパコンによっては鍵形式が指定されている可能性がある。 鍵の保存先は(1)から変える必要がなく,そのままエンターでほぼ支障ない。 (2), (3)では,ssh鍵のペアを使用するときのパスフレーズを設定する。 それぞれでそのままエンターすると,パスフレーズなしのssh鍵を作成できるが, 計算機の運営上,パスフレーズなしのssh鍵は許可されていないケースが多いので要注意。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ishii/.ssh/id_rsa):  <----(1)
Created directory '/home/ishii/.ssh'.
Enter passphrase (empty for no passphrase):                     <----(2)
Enter same passphrase again:                                    <----(3)
Your identification has been saved in /home/ishii/.ssh/id_rsa.
Your public key has been saved in /home/ishii/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:BfvwjxqUlndfHrfVNDjmwP91NFdey2dCd0jsDkDDHO8 ishii@sample-machine1
The key's randomart image is:
+---[RSA 2048]----+
|        .++. oo.=|
|         o=o .=o=|
|        o .+.=.=B|
|         B .* o=*|
|        S + E= .B|
|       o . + .ooB|
|        . . . .o.|
|         o       |
|        .        |
+----[SHA256]-----+

id_rsaid_rsa.pubのパーミッションは600(rw-------)644(rw-r--r--)だが, このパーミッションが変わってしまうと,ssh鍵が正しく参照できなくなるため注意する。

$ cd ~/.ssh

$ ls -la
合計 12
drwx------  2 ishii users   38  2月  8 18:29 .
drwxr-xr-x 20 ishii users 4096  2月  8 18:29 ..
-rw-------  1 ishii users 1675  2月  8 18:29 id_rsa
-rw-r--r--  1 ishii users  390  2月  8 18:29 id_rsa.pub

2. 公開鍵の登録

この作成された公開鍵id_rsa.pubの内容を,アクセスしたい計算機へと登録する。 初回登録方法は様々で,webフォームを通してid_rsa.pubの中身を計算機の自身の アカウント上に登録する方法もあれば,サーバー管理者に公開鍵を登録してもらう方法もある。 国内のスパコンはほとんど前者だが,兵県大の計算機にアクセスしたい場合は後者となる。 ただし,サーバー管理者に登録してもらうのも初回のみのため,2回目以降は自身で 公開鍵をサーバーに登録すること。

$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7aY+w1l2CdmAfB9+TEhu9pxl/fnV3PO3ph9d5C1EhGwq6/yEUC8Zg+F1p5WG/7GPxb4p6YthNmIumQeaQc5tEVzBZ9SFE9nSj/mCeujK0bilkvmrxJgCK5zRsF4TrcqZQEY8hO/Qo04IpM29CxoBzNuAfKSeDoNiAQ1USAOzC8LssUMepqMFRO1E9/ZL0Kx59Qrcso6kPx6TYcf225CQyU3h48pFa2XLM6ip3L8E15mp79pV9nFV7EucsiTUP4utNierZRgZT7lF5K3SolRM8DhAJUwoWUxujMlYz6matsx3iB+yq+Vfz7j1MHIYK+55vZQAeCrY+7787qKxBAbUB ishii@sample-machine1

例えば,id_rsa.pubを作成したマシンに,そのssh鍵を使ってアクセスできる ようにするためには,id_rsa.pubの中身をauthorized_keysというファイル名で保存する。 このauthorized_keysファイルが,ssh接続を試みた時に参照する接続先の 公開鍵格納ファイルに対応する。 スパコンなどでwebフォームから公開鍵を登録した場合,ログイン先のアカウントでは, すでにauthorized_keysが作成されており,登録した公開鍵の中身が入力されている はずである。

$ cat id_rsa.pub > authorized_keys

$ chmod 644 authorized_keys

$ ls -la
合計 16
drwx------  2 ishii users   61  2月  8 20:41 .
drwxr-xr-x 20 ishii users 4096  2月  8 18:29 ..
-rw-r--r--  1 ishii users  390  2月  8 20:41 authorized_keys
-rw-------  1 ishii users 1675  2月  8 18:29 id_rsa
-rw-r--r--  1 ishii users  390  2月  8 18:29 id_rsa.pub

上記の場合,authorized_keysの中身はid_rsa.pubの中身となっているが, 下記のように2行目以降に別PCの公開鍵を記載することで,複数の公開鍵を登録できる。 長い文字列の途中で改行が入らないように注意すること。 したがって初回以降はターミナルから別PCの公開鍵を登録できるので, 2回目以降の公開鍵の登録は自身で行うこと。

$ vi authorized_keys
ssh-rsa AAAAB3Nz...(中略)...KxBAbUB ishii@sample-machine1
ssh-rsa AAAAB3Ca...(中略)...DwSIeJL ishii@sample-machine2  <---追加例①
ssh-rsa AAAAB3Qz...(中略)...ByWFuHN ishii@sample-machine3  <---追加例②

3. configファイルの作成