ネットワークを利用した遠隔作業

MacOS Xを含むUNIX系OSは,インターネットや学内ネットワークなどコンピュータ・ネットワークを積極的に活かした機能に優れている.ここではsshによるリモート(遠隔)ログインについて学ぶ.

SSHによるリモートログイン

例えば,基礎プログラミング演習の課題遂行などの理由で,自宅など学外からcc環境のLinuxコンピュータを利用したい場合がある.また,学内のWindowsが動作しているパソコンからサーバコンピュータにアクセスしてWebページ編集などの作業がしたい場合もあるかも知れない.このような場合,自分が利用しているコンピュータから,ネットワークを介して他のコンピュータ上で作業する必要がある.そのような目的を実現する考え方がリモートログイン(Remote Login,遠隔ログイン)と呼ばれる.

リモートログインを可能にするソフトウェアはUNIXでは telnet, rlogin といったコマンドが標準的に用意されており,Windowsでもtelnet機能を提供するTeraTermなどの端末エミュレータソフトがある.しかし,これらツールは,パスワード情報がネットワークを平文で流れてしまうため,通信内容を盗聴されると簡単にパスワードがばれてしまうという問題点があり,現在では,たとえ学内であっても使うべきではない.

ここでは,telnetの問題点を解消して暗号化しながら通信することで安全性を高めたSSHソフトウエアを利用した遠隔ログインについて説明する(Windowsにもsshが利用可能になるソフトウェアがある.詳細は,本学情報センターのWebページを参照のこと).例として,情報センターが提供する遠隔アクセス向けLinuxサーバcc2000(cc2000.kyoto-su.ac.jp)へ遠隔ログインしてみよう.

準備

本学学生が利用可能な情報センターのLinuxサーバのOSはUbuntu Linuxを用いている.コマンド操作においてはMac OS Xと基本的な部分は同等に操作できるはずである.尚,昨年までは,情報センターのLinuxコンピュータとMac OS Xは標準の日本語漢字コードが違っていたので,少し工夫が必要であったが2010年度からUTF-8エンコーディングになったので,極く普通にアクセスすれば良くなった.

但し,CSE環境とcc環境は設備運営が全く別々にされており,ホームディレクトリ領域も「全く別々」に用意されているから,遠隔アクセスした時に「作成してあるはずのファイルが無い!」と慌てないように.....

ちなみに,CSE環境向けの遠隔アクセスサーバは,恐らく整備されないだろう......

尚,sshによるリモートログインのためにはネットワーク認証が完了している必要がある.念のため,Webブラウザを開いて本学Webページが正常に表示される事を確認しておくこと.

sshによるcc環境への遠隔アクセス

ターミナルを起動してコマンド操作できるウィンドウを開き,cc環境のサーバコンピュータに遠隔ログインしてみよう.

SSHを用いて遠隔ログインするには,端末上で次のsshコマンドを実行する.

ssh ユーザ名@ホスト名(又はドメイン名)

ここでは,例としてユーザ名fooというユーザがcc環境のサーバであるcc2000.kyoto-su.ac.jpへログインする例を示す.

ssh foo@cc2000.kyoto-su.ac.jp

これを初めて実行したときに限って,次のようなメッセージが表示される.

Connecting to cc2000.kyoto-su.ac.jp...
The authenticity of host 'cc2000 (133.101.96.61)' can't be established.
RSA key fingerprint is 0a:8f:d7:86:4c:d6:ab:73:47:9b:25:e9:49:cd:3a:9e.
Are you sure you want to continue connecting (yes/no)?

これは,相手のコンピュータの電子指紋を記録するかどうかの確認である.本当に初めてアクセスする場合は yes とキーボードからタイプして答えれば良い(ターミナル上に表示された"yes"の部分をいくらクリックしても無駄ですよ).但し,初めてでないのに同様のメッセージが表示された場合は,「指紋が異なる」つまり「偽のコンピュータ」にアクセスしかけている可能性があるので,no とタイプして答えて通信を一旦切断し,電話などの別の確実な手段をつかって,相手のサーバコンピュータの管理者に確認するのが望ましい.

確認に対してyesと答えると,次のようなメッセージが出る.ここでログインしようとしているコンピュータのパスワード(この例の場合では,cc環境の(つまり,POSTへのアクセスにて使う)パスワードを入力する.

尚,NetBootへのログイン時と同じく,パスワードを入力するときは「英数キー」を押して英数入力モードでタイプすること.

foo@cc2000's password:

ここで,セキュリティ上の理由から入力したパスワード文字は何も画面上に表示されないので注意のこと

パスワードが正しければ,cc2000に遠隔ログインに成功して,コマンドプロンプトが表示される.この状態で各種コマンドやプログラムを実行すると,それは全てcc2000というサーバコンピュータ上で実行されることになる.こうして,例えば,自宅のパソコンからインターネットを経由して作業でき,演習課題の残り作業を片づけるようなことも可能となる.

尚,cc2000ではセキュリティ対策として,上記で入力すべきパスワードを5分間以内で5回連続して間違えた場合,10分間程度の間,そのユーザのログイン操作は一切拒絶されるようになっている.パスワード入力は慎重に行い,安易に何度も間違えないように心がけること.

cc2000という名前のコンピュータは実在しておらず,cc2001とcc2002に自動的に割り振られるようになっている.また,セキュリティ保護管理の都合上,学外からアクセス可能なcc環境のサーバはcc2000だけに限定されている.

ssh接続の切断

利用を終えて,ssh接続を終了して切断するには,次のコマンドを実行する.プログラムが実行したままの状態に放置されて,サーバに無用の負担をかけてしまう危険性があるため,利用を終えてウィンドウを閉じる前には必ず実行してアクセスを切断しておくこと.

logout (又は exit)

cc2000はUbuntu Linuxが動作するLinuxコンピュータであるので,cc環境の情報処理教室に設置されたLinuxパソコンに備えられているソフトウェアは同様に使える.しかし,cc2000は学外からアクセス出来る唯一のサーバであるため,本学の教員や他学部学生など様々なユーザが常に利用しているのが普通である.このため,そのサーバに過剰な処理負担をかけると他のユーザの作業が滞るなどの迷惑が掛かるので,負担の重いソフトウェアの実行は出来るだけ遠慮すること.

そのような負担の高いソフトウェアとしては例えばMathematicaやFirefoxなどがある.判断の目安としてネットブート環境下でも,即座に起動されずに「暫く待たされる」ものは,間違いなく負担が重いものであるので,できるだけ利用を避けること.また,起動したプログラムは,目的が終了したら必ず終了させるようにして無駄に放置しないこと.プログラムの実行を放置すれば,これもサーバの負担を増加させることになる.

基礎プログラミング演習Iの表紙ページへ戻る