BioLinux/Ubuntu(4) 公開鍵認証を利用したSSHによるリモート接続(Windows10=>BioLinux8)
普段、Windows10が入ったノートパソコンを利用していて、解析を行うためにLinuxの入ったデスクトップパソコンを使うことがあります。
恥ずかしい話ですが、今までデータのやり取りをパソコン間で行うために、外付けのハードディスクを使って行っていました。
そういった場合に、片方のパソコンにリモート接続してパソコン間でデータのやり取りが自在にできたら便利だなぁと思っていました。
そんなこんなで今回は、SSHを利用したリモート接続の方法を試してみたいと思います。内容としてはこちらのブログを主に参考にしました。
ubuntuを使ってみた: windows7からubuntu11.10にsshでアクセスしてみる
SSHとは、パスワードや公開鍵認証を利用することで安全にリモートからパソコンに接続するための方法のことです(詳しくは下記を参照)。今回は、よりセキュアな公開鍵を利用した認証を試したいと思います。
SSHは、インフラエンジニア以外にとって馴染みのない技術というわけではなく、いろんなところで利用されています。例えば、次世代シーケンサーのデータをSRAにアップロードする際に利用される接続に、公開鍵認証によるSSHが使われています。
前置きはこのくらいにして、早速設定を行ってみましょう。
使ったもの
- BioLinux8の入ったパソコン(Desktop)
- Windows10の入ったパソコン(Laptop)
公開鍵と秘密鍵の準備
SSHによるリモート接続を行うために、公開鍵と秘密鍵を用意する必要があります。公開鍵はデータの暗号化に使う鍵であり、秘密鍵は暗号化されたデータを復号化する(データを読める形に変換する)のに必要な鍵です(詳しくは下記を参照)。
今回の例では、公開鍵は遠隔操作を受ける側であるBioLinux8の入ったパソコンに、秘密鍵はリモート接続を行う側であるWindows10の入ったパソコンがそれぞれ保持する形にします。
Windows10側の操作
(1) Tera Termのインストール
下記のリンクから、TeraTermをまずインストールします。EXEファイルなのでインストールは簡単。
(2) SSH鍵の生成
TeraTermのインストールが終わったら、TeraTermを起動しましょう。メニューから、設定→SSH鍵生成をクリックします。
「TTSSH: 鍵生成」というウインドウが出てくるので、「生成」ボタンをクリックし、公開鍵と秘密鍵を生成します。このとき、「鍵のパスフレーズ」も設定しておきましょう。そうしたら、公開鍵と秘密鍵をそれぞれ任意の場所に保存してください。
Linuxのパソコンへ公開鍵を入れる必要があるので、USBメモリなどにデータを保存しておきましょう。それでは、BioLinux8側の設定に移りましょう。
BioLinux8側の設定
(1) OpenSSHのインストール
まず、SSH接続を行うためにOpenSSHをインストールします。LinuxではSSHを使う上でOpenSSHはデファクトスタンダードとなっており、BioLinux8にはあらかじめインストールされているはずです。もし万が一、インストールされていない場合は下記のコマンドを実行して、パソコンにOpenSSHをインストールしておきましょう。
下記のコマンドを実行して、SSH鍵を生成します。
(3) Windows10で生成した公開鍵をLinux側の公開鍵ファイルに保存
BioLinux8側にある公開鍵ファイル(~/.ssh/authorized_keys)に、先ほどWindows10上で作成した公開鍵を組み込みます。
下記のコマンドを実行。
(4) SSHの設定をいじくる
下記のコマンドを実行して、
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no
という設定に変更する。「#」が先頭についている場合は削除する。
こうすることで、パスワードによる認証ではなく、SSH鍵による認証によってリモートできるように設定します。
(5) SSHの設定を適応する
下記のコマンドを実行してSSHの設定をリロードします。
(6) ファイアーウォールの設定を確認しておく
ファイアーウォールのせいでリモート接続できない場合があります。下記のコマンドを実行すると、ポートの情報が出力されます。
22がALLOW Anywhereになっていなければ、下記のコマンドを実行してポートを開放する必要があります。
これでBioLinux8側の設定は終了です。
Windows10側の設定
(1) TeraTermを利用した接続
TeraTermを起動したら、ホストにBioLinux8のIPアドレスを指定して、OKをクリックします。
BioLinux8のIPアドレスが分からない場合は、BioLinux8側で下記のコマンドを実行すると、インターネット接続に関する情報が出てきます。
「inet addr」という項目があるので、それがパソコンのIPアドレスになります。
すると、SSH認証のウインドウに移行するので、BioLinux8にログインする際のユーザ名とパスフレーズ(パスワード)を入力します。さらに、「RSA/DSA/ECDSA/ED25519鍵を使う」にチェックを付けて、先ほどWindows10上で作成した秘密鍵を指定してOKをクリックします。
すると、BioLinux8の入ったパソコンにリモート接続できているはずです。