※ 今年度は "local" として各自の PC を, "remote" として johoXX を想定して実習を行います.
今年度は、2019 年度までと授業構成を変えているため、今までにやってきたことと重複する部分があります。 重複する部分は、復習として資料を読んでください。
ssh を用いてリモートログインしてみましょう. ssh は通信内容を 暗号化するので, パスワードを盗まれる危険性が減ります.
自分のアカウントを作成した計算機(リモートホスト)にリモートログインしてみましょう.
local$ ssh hoge@johoXX.ep.sci.hokudai.ac.jp |
< 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)」を用いています. そしてこのメッセージは「相手の公開鍵をもらっても良いか?」という 確認にあたります. (公開鍵方式の暗号化については第 2 回 (SSH によるログイン) を参照してください). ここでは質問に対して "yes" を返して下さい.
無事ログインできれば、リモートホストのプロンプトが返ってきます.
user@johoXX$ |
< プロンプトに表示されている "アカウント名@johoXX" の "johoXX" が, 情報実験機の番号になっているのが確認できます. |
リモートホストにログインした状態で, ファイルを作成してみましょう.
remote$ echo "remote_command_test" > test.txt |
< リダイレクトを利用して, 適当な txt ファイルを作成します. |
作成したファイルが正しく作られているか確認してみてください(ls, cat, less などを使う). このように, リモートホスト上でもローカルホストと変わりなく作業ができることが リモートアクセスの利点です.
リモートホストからログアウトする場合は以下のように logout コマンドを実行します.
remote$ logout |
< リモートホストからログアウトします |
この小節で行うことには、ローカルホストで予め準備をする必要があります。 この準備をみなさんには行ってもらっていないため、この小節の内容は実行できません。 実習としては、内容を読むだけで十分です。
リモートホストからローカルホストへ X クライアント (アプリケーションの一種. X window system については第 1 回参照) を「飛ばしたい」, つまりリモートホストで起動した X クライアントをローカルホスト上に表示させたい場合は -X オプションを付けて ssh ログインします. ログインした後, X クライアントの一つである xeyes を飛ばしてみて下さい.
local$ ssh -X hoge@johoXX.ep.sci.hokudai.ac.jp |
< XX には情報実験機番号(2桁)を記述 |
remote$ xeyes |
< リモートホストで起動した xeyes がローカルホストに飛んできます. ctrl + C で終了できます. |
xeyes はデスクトップ上のマウスカーソルを追いかける目が出現するアプリケーションです.
今回のようにリモートログインをした状態で xeyes を起動した場合, ローカルホストのデスクトップ上のカーソルの位置情報が
ssh 接続を介してリモートホストに送られており, 「カーソルを追いかけた場合の適切な目の位置の決定」という演算処理は
リモートホストの CPU で処理されます.
そしてその処理結果が再び ssh 接続を介してローカルホストに送られ, 「決定された位置へと実際に目を動かす」という処理が
ローカルホストの CPU によって行われています.
xeyes は軽量なアプリケーションなので恩恵は薄いのですが, より演算処理の大変な作業をおこなう場合, 処理自体は高性能な
リモートホストに任せれば, 低性能なローカルホストでも負担をかけずに実行結果だけを見ることができます.
sftp はファイル転送のために使われるコマンドで, ssh プロトコルを用いて通信内容を暗号化するという利点があります. 使い方は以下の通りです.
local$ sftp "username"@"hostname" |
リモートホスト -> ローカルホストの場合は "command" として "get ファイルのパス" を, ローカルホスト -> リモートホストの場合は "put ファイルのパス" を入力することでファイルの転送ができます.
アクセスするディレクトリを指定する際は
アカウント名@リモートホスト名:ディレクトリの絶対パス
という書式で指定します(未指定の場合はホームディレクトリ).
先に作成した test.txt をリモートホストからローカルホストへ転送してみましょう. test.txt はリモートホストのホーム領域に存在するものとし, test.txt をローカルホストのカレントディレクトリ (現在自分のいるディレクトリ)に転送するものとします. その場合は以下のようになります.
local$ sftp hoge@johoXX.ep.sci.hokudai.ac.jp |
< XX には情報実験機番号(2桁)を記述 |
local$ cat test.txt |
< 転送されたファイルを見る(Windows Powershell の場合) |
local$ type test.txt |
< 転送されたファイルを見る(コマンドプロンプトの場合) |
最終更新日: 2021/05/21 人見祥磨 更新 | Copyright © 2002-2020 inex |