SSH/SCPの使い方

Language: 日本語 | English

目次

はじめに

情報科学部の各種サーバへSSH/SCPを用いて接続するための方法を説明します。
この方法により、学外からでもラボ環境の各自のホームディレクトリにアクセスすることができます。

利用可能なサーバ

接続ホスト対象主な用途
ssh.cis.k.hosei.ac.jp学生・教職員情報科学部ラボ教室で使用するファイルへのアクセス、各種演習計算環境
サブドメイン.cis.k.hosei.ac.jp(*)プロジェクトサーバ利用者プロジェクトサーバのコンテンツ管理
cis.k.hosei.ac.jp専任教員のみhttp://cis.k.hosei.ac.jp/~アカウント名/ のコンテンツ管理 (非常勤講師用の領域はありません)

* 「サブドメイン」はプロジェクトサーバの利用を申請した際に発行されたサブドメインです。

ssh.cis.k.hosei.ac.jp 上のシェルアカウントについて

学部生のアカウントを対象に、リソースの上限が設定されています。
院生・教職員のアカウントについては制限を設定していませんが、他のユーザに影響を及ぼさない範囲で利用していただくようお願いいたします。

制限項目制限値
1 プロセスごとに使用可能なメモリ量の制限1024 MB
同時実行可能なプロセス数の制限32 プロセス

なお、制限の内容は状況に応じて随時見直すことがあります。

記事作成時の環境

本記事は下記の環境で動作確認しています。そのため、使用する環境によっては、設定箇所が異なる場合があります。

Windows環境

上記ソフトウェアは、情報科学部貸与ノートパソコンにバージョンは異なりますが予めインストールされています。

秘密鍵と公開鍵の作成

SSH/SCPは、公開鍵暗号方式を利用した安全なリモートシェル環境/ファイル転送方法です。
まず、この公開鍵暗号方式で利用する自分専用の公開鍵と秘密鍵を作成します。

SSHクライアントとして日本語版のPuTTYを利用します。

上記サイトからダウンロードしたファイルを適当なフォルダに解凍し、PuTTYgenを起動します。
PuTTYgenを起動したら、生成する鍵の種類を [SSH-2 RSA]、[生成する鍵のビット数] を 2048 にし、 [生成] ボタンを押してください。

秘密鍵と公開鍵を生成するための乱数を生成するために、PuTTYgenの画面上でマウスカーソルを適当に動かし続けてください。

鍵が生成されたら、[鍵のコメント]、[鍵のパスフレーズ]、[パスフレーズの確認] を適当に入力してください。入力したパスフレーズは今後接続時に使用ことになりますので忘れないでください。

生成された秘密鍵を保存するために [秘密鍵の保存] を押し、適当なファイル名で保存してください。

次に、生成された公開鍵を保存するために適当なエディタで authorized_keys という名前のテキストファイルを作成してください。作成したauthorized_keysファイルには、PuTTYgenの [OpenSSHのauthorized_keysファイルにペーストするための公開鍵] にある文字列をコピーし、貼り付けて保存してください。

以上であなた専用の秘密鍵と公開鍵の作成が完了です。

秘密鍵取扱い上の注意

秘密鍵は絶対にネットワーク上を経由・転送させてはいけません(FTP、ファイルの共有など)。
移動させるときには、必ずリムーバブルメディアなどを利用してください。

公開鍵の登録

情報科学部のサーバへ接続できるようにするために、作成した公開鍵を自分の情報科学部アカウントに登録します。

  1. 情報科学部サーバー用公開鍵設定にアクセスします。
  2. ログインして公開鍵を登録してください。公開鍵は authorized_keys ファイルに保存した内容を使います。

以上で公開鍵方式を利用して情報科学部のサーバへ接続するための、サーバ側の設定は完了しました。
次にクライアント側の設定を行います。

PuTTYの使い方

情報科学部サーバへPuTTYを利用して接続し、リモートシェルを利用する方法を説明します。
ここでは、例として ssh.cis.k.hosei.ac.jp サーバへ接続する方法を記載します。他のサーバへ接続する場合は、接続先ホスト名を接続したい サブドメイン.cis.k.hosei.ac.jp などへ変更・保存するなどして読み進めてください。

まず、情報科学部サーバへ接続するためのテンプレートとなる設定が入った下記のregファイルをダウンロードして、[右クリック] -> [結合] を実行してください。

実行するとPuTTYにテンプレート用の設定が追加されます。
PuTTYを起動して、個人設定を行うために [セッション一覧] から追加された ssh.cis.k.hosei.ac.jp を選んで、[読込] を押してください。

ユーザ名を設定するために、左にあるツリーから [接続] -> [データ] を選択して、[自動ログインのユーザー名] に情報科学部アカウントのユーザ名を入力してください。

次に秘密鍵を設定するために、左にあるツリーから [接続] -> [SSH] -> [認証] を選択して、[認証のためのプライベートキーファイル] に先程作成した秘密鍵を指定してください。

設定した個人設定を保存するために、左にあるツリーから [セッション] を選択して、[保存] を押してください。

これで個人設定は完了です。次回からは設定したセッションを選択し、下部にある [開く] を実行することでサーバへ接続できます。

なお、初めて接続するサーバの場合、サーバの公開鍵を登録するかどうか聞かれますので [はい] を選択してください。

実行後、ウィンドウが開きパスフレーズを求めらます。秘密鍵を作る際に入力したパスフレーズを入力してください。
認証が成功すると、リモートシェルが利用できるようになります。

WinSCPの使い方

情報科学部サーバへファイルをアップロード/ダウンロードする方法を説明します。
この方法を利用して、ラボ教室のUドライブのデータをラボ以外の自宅や一般教室からアクセスできます。
ここでは、例として ssh.cis.k.hosei.ac.jp サーバへ接続する方法を記載します。他のサーバへ接続する場合は、接続先ホスト名を変更・保存するなどして読み進めてください。

SCPクライアントとしてWinSCPを利用します。

なお、WinSCPはPuTTYの設定と連携して使用するため、予め前述した [PuTTYの使い方] を参考に設定を済ませておいてください。

上記サイトからダウンロードしたファイルを適当なフォルダにインストールし、WinSCPを起動します。
WinSCPを起動したら、左側のツリーから [Stored sessions] を選んで、キーボードで [Alt] + [T] を同時押しすると表示されるメニューから [Import] を実行してください。

PuTTYで設定したセッション一覧が表示されるので、インポートする設定にチェックを入れて [OK] を押してください。

WinSCP用の追加設定を行うため、[ssh.cis.k.hosei.ac.jp] を選び、左下の [Advanced options] にチェックを入れてから [Edit] を押してください。

日本語ファイル名を扱えるようにするために、[Environment] -> [SFTP] を選択して、[Server does not use UTF-8] を [Auto] から [Off] に変更してください。

設定した追加設定を保存するために、 [Save] を選択し、上書きして良ければ [OK] を押してください。

これで追加設定は完了です。次回からは設定したセッションを選択し、下部にある [Login] を実行することでサーバへ接続できます。

なお、初めて接続するサーバの場合、サーバの公開鍵を登録するかどうか聞かれるので [Yes] を選択してください。

実行後、ウィンドウが開きパスフレーズを求めらます。秘密鍵を作る際に入力したパスフレーズを入力してください。
認証が成功すると、左側にローカルハードディスク、右側にサーバ上のディスクが表示され、ファイルのアップロード/ダウンロードが行えるようになります。

Linuxでは

ここまではクライアントがWindowsの場合でしたが、Linuxについても簡単に触れておきます。

鍵の生成

$ ssh-keygen -t rsa

公開鍵のセットアップ

上述の公開鍵のセットアップを参照して、authorized_keysの代わりに~/.ssh/id_rsa.pubの中身を登録してください。

コマンドの使い方

sshおよびscpコマンドの基本的な使い方は以下の通りです。詳しくはmanなどを参照してください。

ssh

$ ssh -p 22 -i ~/.ssh/id_rsa USERNAME@ssh.cis.k.hosei.ac.jp
$ ssh -X USERNAME@ssh.cis.k.hosei.ac.jp
-p
ポートの指定。デフォルトは22。
-i
秘密鍵の指定。デフォルトは~/.ssh/id_rsaなど。
-X
Xフォーワーディングを有効にする。

scp

$ scp file USERNAME@ssh.cis.k.hosei.ac.jp:~/
$ scp -r USERNAME@ssh.cis.k.hosei.ac.jp:~/dir ./
-r
再帰的にコピーする