リモートアクセス/ネットワークセキュリティ

  1. 実習の前準備
  2. リモートアクセス
  3. ネットワークセキュリティ

2. ssh を用いたリモートアクセス入門

[2.1] ssh を用いたリモートログイン

ssh を用いてリモートログインしてみましょう. ssh は通信内容を 暗号化するので, パスワードを盗まれる危険性が減ります.

つい先ほど自分のアカウントを作成した隣の計算機(リモートホスト)にリモートログインしてみましょう.

local$ ssh hoge@192.168.16.1XX
    
< hoge にはリモートホスト上でのアカウント名, XX にはリモートホストの情報実験機番号(2桁)を記述. 
ローカルホストとリモートホストでアカウント名が同じ場合は「hoge@」の部分を省略できます.
	

初めてリモートログインすると以下のようなメッセージが流れます.

The authenticity of host '192.168.16.1XX (192.168.16.1XX)' can't be established.
ECDSA key fingerprint is 49:bb:4d:9b:98:58:4e:22:7a:a2:55:5f:89:f2:93:27.
Are you sure you want to continue connecting (yes/no)? 
    

ssh は通信を暗号化する際にリモートホストの「公開鍵(ECDSA key)」を用いています. そしてこのメッセージは「相手の公開鍵をもらっても良いか?」という 確認にあたります (公開鍵方式の暗号化については第11回(メール配送の仕組み)を参照してください). ここでは質問に対して "yes" を返して下さい.

無事ログインできれば、リモートホストのプロンプトが返ってきます.
user@johoXX$
      
< プロンプトに表示されている "アカウント名@johoXX" の "johoXX" が, 
隣の情報実験機の番号になっているのが確認できます. 
      


[2.2] リモートログインした状態でのコマンド実行

リモートホストにログインした状態で, ファイルを作成してみましょう.

remote$ echo "remote_command_test" > test.txt        
< リダイレクトを利用して, 適当な txt ファイルを作成します. 

作成したファイルが正しく作られているか確認してみてください(ls, cat, less などを使う). このように, リモートホスト上でもローカルホストと変わりなく作業ができることが リモートアクセスの利点です.

リモートホストからログアウトする場合は以下のように logout コマンドを実行します.

remote$ logout        
< リモートホストからログアウトします

リモートホストからローカルホストへ X クライアント (アプリケーションの一種. X window system については次回参照) を「飛ばしたい」, つまりリモートホストで起動した X クライアントをローカルホスト上に表示させたい場合は -X オプションを付けて ssh ログインします. ログインした後, X クライアントの一つである xeyes を飛ばしてみて下さい.

local$ ssh -X hoge@192.168.16.1XX        
< XX には情報実験機番号(2桁)を記述
remote$ xeyes        
< リモートホストで起動した xeyes がローカルホストに飛んできます.
ctrl + C で終了できます.

xeyes はデスクトップ上のマウスカーソルを追いかける目が出現するアプリケーションです. 今回のようにリモートログインをした状態で xeyes を起動した場合, ローカルホストのデスクトップ上のカーソルの位置情報が ssh 接続を介してリモートホストに送られており, 「カーソルを追いかけた場合の適切な目の位置の決定」という演算処理は リモートホストの CPU で処理されます. そしてその処理結果が再び ssh 接続を介してローカルホストに送られ, 「決定された位置へと実際に目を動かす」という処理が ローカルホストの CPU によって行われています.
xeyes は軽量なアプリケーションなので恩恵は薄いのですが, より演算処理の大変な作業をおこなう場合, 処理自体は高性能な リモートホストに任せれば, 低性能なローカルホストでも負担をかけずに実行結果だけを見ることができます.


[2.3] scp を用いたファイル転送

scp はファイル転送のために使われるコマンドで, ssh プロトコルを用いて通信内容を暗号化するという利点があります. 使い方は以下の通りです.

local$ scp 転送元ファイルのパス 転送先ファイルのパス 

リモートホスト -> ローカルホストまたはローカルホスト -> リモートホストのいずれも可能です.
リモートホストを指定する際は
アカウント名@リモートホスト名:ファイルの絶対パス
という書式で指定します.

先に作成した test.txt をリモートホストからローカルホストへ転送してみましょう. test.txt はリモートホストのホーム領域に存在するものとし, test.txt をローカルホストのカレントディレクトリ (現在自分のいるディレクトリ)の remote_scp.txt として転送するものとします. その場合は以下のようになります.

local$ scp hoge@192.168.16.1XX:~/test.txt ./remote_scp.txt

< XX には情報実験機番号(2桁)を記述
local$ cat remote_scp.txt       
< 転送されたファイルを見る



>> 次ページへ

最終更新日: 2018/06/21 村橋 究理基 更新 Copyright © 2002-2018 inex