委員会概要 各種申請 サービス サポート リンク
マニュアル BBS FAQ 管理者各位 リサーチ

Secure SHell


 
1.SSHの説明

SSH(Secure SHell)』は 、ネットワークを介してコンピュータにログインするためのプログラムで、遠隔地のマシンでコマンドを実行したり他のマシンへファイルを移したりするために使われます。
SSHは強力なホスト/ユーザー認証通信経路全体の暗号化によって、安全な通信を実現します。また、Xや任意のTCP接続を安全にフォワーディングする機能もあります。

目次へ戻る
 
 
2.インストール

最近のUNIX系OSでは、標準でインストールされていることが多いです。そうでない場合は、利用している計算機の管理者に「セキュリティを強化する気はないんですか?最近はクラッキング被害も多発してるようですけど?」とチクリと一言言って、SSHをインストールしてくれるようにお願いしましょう。
また、古いバージョンのSSHでは既知のセキュリティーホールなどの問題がある可能性があります。できるだけ最新版を使いましょう。
目次へ戻る
 
 
3.利用方法

以下に紹介するコマンドを使って、リモートホストに初めて接続する時、そのホストを信用していいかどうかを聞いてきます。yesを入力すると、ホームディレクトリの.ssh/known_hostsにそのホストのRSA鍵を登録します。

The authenticity of host 'ruby.club.kyutech.ac.jp (131.206.108.5)' can't be established.
RSA key fingerprint is a7:9e:e2:3f:44:ca:55:f3:0d:52:6b:ff:55:25:80:80.
Are you sure you want to continue connecting (yes/no)?

これ以降の接続時には、この登録された鍵がチェックされ、もし入れ替わっていれば警告メッセージが表示されます。これにより、DNS改竄によって悪意あるホストへ接続される等のなりすましを防ぐことができます。

 

  • ssh(slogin)

通信経路を暗号化して、リモートホストに接続します。telnetやrloginの代替手段として利用できます。

% ssh [リモートホスト] -l [ユーザ名]

ローカルホストで使っているユーザ名がリモートホストと同じ場合はユーザ名を省略することもできます。

例1:情報科学センターや自宅から、共用計算機(ruby)にログインする。

% ssh ruby.club.kyutech.ac.jp -l yskhashi

例2:共用計算機(ruby)から情報科学センター(remote-i)にログインする。

% ssh -p 10022 remote-i.isc.kyutech.ac.jp -l c23xxxxx

情報科学センターにログインするときは、ISC toolsを使うこともできます。

 

  • scp

通信経路を暗号化して、安全にファイルを転送します。rcpの代替手段として利用できます。

% scp [オプション] [コピー元] [コピー先]

オプション

-r 再帰的、つまりディレクトリをまるごとコピーします。
-p ファイルの更新日時を変えません。

リモートホストは、[コピー元]・[コピー先]のどちらでもよく、

[ユーザ名]@[ホスト名]:[相対・絶対パス名]

で指定します。

例1:共用計算機(ruby)にログインしていて、example.txtを情報科学センター(nowaki)のホームディレクトリに転送する。

ruby% scp ./example.txt c23xxxxx@nowaki.isc.kyutech.ac.jp:~/

注意:「.」は現在のディレクトリを表し、「~」は自分のホームディレクトリを表します。

例2:共用計算機(ruby)にログインしていて、情報科学センター(nowaki)のホームディレクトリにあるWWWディレクトリをこちらに転送する。

ruby% scp -r c23xxxxx@nowaki.isc.kyutech.ac.jp:~/WWW/ ./

scpはリモートホストのディレクトリがどうなっているかわからないので、確認したい場合は次のsftpを使います。

 

  • sftp

    通信経路を暗号化して、安全にファイルを転送します。ftpの代替手段として利用できます。

    % sftp [ユーザ名]@[リモートホスト]:[ディレクトリ指定(省略可)]

    ディレクトリを指定することで、ログインした後すぐにディレクトリを変更します。

    例:共用計算機(ruby)から情報科学センター(nowaki)に接続する。

    ruby% sftp c23xxxxx@nowaki.isc.kyutech.ac.jp:test/

    Connecting to nowaki.isc.kyutech.ac.jp...
    c23xxxxx@nowaki.isc.kyutech.ac.jp's password:
    Changing to: /home/22/c23xxxxx/test/
    ←testディレクトリに移動

    sftp> ←ログインに成功すると対話的モードに入る

    sftpはftpによく似ているので、 ftpを使い慣れた人は簡単に使うことが出来ます。例えば、ftpの対話的コマンドであるput, getなどが同じように使えます。

    ファイルのリストを表示する。(ls, lls

    リモートホストのリストを表示するにはlsを使います。ローカルホストのリストを表示するにはllsを使います。また、-l オプションを使うことによって、詳細なリストを表示することができます。

    sftp> ls ←リモートホストのリストを表示
    .Xauthority  .cshrc  .mozilla  .signature  WWW  a.out programming

    sftp> ls -l ←詳細表示

    -rw------- 0 44095 9001 1071 Nov 10 18:09 .Xauthority
    -rw-r--r-- 0 44095 9001 523  Nov 18 18:34 .cshrc
    drwxr-xr-x 0 44095 9001 512  Oct 28 12:54 .mozilla
    -rw-r--r-- 0 44095 9001 249  Jun 26 16:47 .signature
    drwxr-xr-x 0 44095 9001 512  Apr 8  2003  WWW
    -rwxr-xr-x 0 44095 9001 4990 Nov 7  15:11 a.out
    drwx--x--x 0 44095 9001 512  Nov 7  15:05 programming

    sftp> lls ←ローカルホストのリストを表示

    .cshrc  .history  .ssh2  .w3m  backup  www

    ディレクトリを移動する。(cd, lcd

    リモートホストでディレクトリを移動するにはcdを使います。ローカルホストでディレクトリを移動するにはlcdを使います。また現在のディレクトリを表示するには、それぞれpwd, lpwdを使います。

    sftp> pwd ←リモートホストのカレントディレクトリを表示
    Remote working directory: /home/22/c23xxxxx/

    sftp> cd programming ←リモートホストのディレクトリを移動

    sftp> lpwd ←ローカルホストのカレントディレクトリを表示
    Remote working directory: /home/yskhashi/

    sftp> lcd www ←ローカルホストのディレクトリを移動

    ファイルをリモートホストへアップロードする。(put

    ローカルホストのファイルをリモートホストにアップロードする場合はputを使います。アップロード先のファイル名が省略された場合は同じ名前でコピーされます。

    sftp> put [ローカルホストのファイル名] [アップロード先のファイル名]

    注意:ファイル名が既に使われていた場合、ファイルは上書されてしまいます。また、ディレクトリを再帰的にアップロードすることはできません。

    sftp> put example.c ←リモートホストにアップロード
    Uploading example.c to /home/22/c23xxxxx/example.c
    example.c              100% 20066 20.2KB/s 00:01

    sftp> put example.c test.c ←名前を変えてアップロード

    Uploading example.c to /home/22/c23xxxxx/test.c
    example.c              100% 20066 20.2KB/s 00:01

    ファイルをローカルホストへダウンロードする。(get

    リモートホストのファイルをローカルホストにダウンロードする場合はgetを使います。 ダウンロード先のファイル名が省略された場合は同じ名前でコピーされます。

    sftp> get [リモートホストのファイル名] [ダウンロード先のファイル名]

    注意:ファイル名が既に使われていた場合、ファイルは上書されてしまいます。また、ディレクトリを再帰的に ダウンロードすることはできません。

    sftp> get example.c ←ローカルホストにダウンロード
    Fetching /home/22/c23xxxxx/example.c to example.c
    /home/22/c23xxxxx/example.c      100% 20066 20.2KB/s 00:01

    sftp> get example.c test.c ←名前を変えてダウンロード

    Fetching /home/22/c23xxxxx/example.c to test.c
    /home/22/c23xxxxx/example.c      100% 20066 20.2KB/s 00:01

    sftpを終了する。(bye, exit, quit

    sftpを終了するには、bye, exit, quitのいずれかを使います。

    sftp> quit

    ruby%

    正常に終了すれば、コマンドモードに戻ります。

目次へ戻る
 
 
4.ポートフォワーディング(Port Forwarding)

SSHには、Xウインドウシステムや任意のTCP/IPアプリケーションの通信を、暗号化して安全なものにすることができるポートフォワーディングという機能があります。

% ssh -L [ローカルホストポート]:[リモートホスト]:[リモートホストポート] [リモートホスト] -l [ユーザ名(省略可)]

ポートフォワーディングのイメージ図

上の図では、ローカルホストの1234番(任意)ポートを、SSHを介してリモートホストの110番(POP3)ポートへ転送(Forward)しています。これにより暗号化されていない経路を通らずに110番ポートにアクセスできます。

% ssh -L 1234:ruby.club.kyutech.ac.jp:110 ruby.club.kyutech.ac.jp -l yskhashi

これでリモートホスト(ruby)のパスワードを入力して接続が完了した後、ローカルホストの1234番ポートへ接続すると、リモートホスト(ruby)の110番ポートに転送されます。

例えば、Sylpheedなどのメーラーのメールサーバの設定を

POPサーバ: localhost
ポート番号:  1234

とすることで、リモートホスト(ruby)のメールを受信できます。作業が終了したら、最後に必ずSSHを終了させてください。

目次へ戻る
 

Topへ戻る


(C) 2004 九州工業大学 学生自治ネットワーク委員会
K.I.T. Student Administered Network Commission