Linux リテラシ - 第6回 SSH

中丸

SSH(Secure Shell)

リモートシェル

SSHの暗号方式

この3つを組み合わせて暗号通信を行います。

暗号通信においてデータの暗号化、及び暗号データの復号に使用します。

共通鍵暗号方式

どちらか一方の鍵を他人に知られてしまうと暗号通信が成り立ちません。したがって鍵の受け渡しは安全な方法で行う必要があります。(そのままネットワークを通して渡すのはNG)

公開鍵暗号方式

公開鍵
秘密鍵

公開鍵は暗号化に使う暗号鍵、秘密鍵は復号に使う復号鍵。

秘密鍵でもデータの暗号化ができますが、これは公開鍵を使って復号することができるためデータの守秘性を守ることにはなりません。(公開されている鍵で復号できるため)

RSA認証

  1. ユーザはサーバに対して接続を要求します。
  2. 要求を受けたサーバは乱数データを生成します。
  3. サーバは生成した乱数データを登録されている公開鍵を使って暗号化し、送信します。
  4. ユーザは受信した暗号データを自分の秘密鍵を使って復号します。
  5. ユーザは復号して得たデータをサーバに送信します。
  6. ユーザから送られてきたデータがサーバの生成したデータと一致すれば認証成功となります。

SSHサーバへの接続

ユーザが通信を終えたら共通鍵は破棄され、再び通信を行うときは
再度サーバから入手します。(サーバもその都度新しく共通鍵を生成します)

SCP(Secure CoPy)

ファイル転送

SSHサーバーへの接続

今回はWindowsからLinuxサーバへアクセスします。

準備

SSHの説明の項から分かるように

の二つが必要になります。

秘密鍵、及び公開鍵の作成

二つの鍵は後で使用するので分かりやすい場所に保存しておいてください

公開鍵の登録

サーバによって公開鍵の登録の仕方は異なります。一般的なのはユーザーのホームディレクトリに .ssh というディレクトリを作成し、その中でauthorized_keysという名前のテキストファイルに公開鍵を登録します。

/username(ホームディレクトリ)
    └ .ssh (ディレクトリ)
    └ authorized_keys <- 公開鍵

PuTTYの設定

設定名内容PuTTYでの項目
セッション名セッションの名前。この名前で設定内容が保存されます。[セッション]の「保存されたセッション」
ホスト名接続するサーバのホスト名[セッション]の「ホスト名」
秘密鍵サーバに登録した公開鍵と対になる秘密鍵[接続] -> [SSH]-> [認証] の「認証のためのプライベートキーファイル」
ユーザ名サーバにログインするときのユーザ名[接続] -> [データ] の自動ログインユーザ名
文字セットサーバが使用している文字セット[ウィンドウ] -> [変換] の「受信のデータは次の文字セットとみなされる」

他の設定に関しては

情報科学部のサーバに接続するときの設定は

設定名内容
セッション名分かりやすければ何でもいいです。Lab等。ホスト名をそのまま使ってもいいです
ホスト名ssh.cis.k.hosei.ac.jp
秘密鍵情報科学部メンバーサイトで登録した公開鍵と対になる秘密鍵
ユーザ名ラボマシンにログインする時のユーザ名
文字セットUTF-8(CJK)

PuTTYを使ってSSHサーバへ接続

  1. 「PuTTYの設定」で保存したセッションを開きます
    • PuTTYのセキュリティ警告が出てきますが無視して「はい」を押します。
  2. 秘密鍵のパスワードを求められるので入力します。
    • PuTTYでユーザ名を設定してない場合は「login as:」とユーザ名も求められます。

後はLinuxのターミナルを使うように扱えます。

SCPを使う

PuTTYの設定を取り込む

  1. [セッション] -> [保存したセッション] を開きます
  2. [機能(Tools)]ボタンを押して、[取り込み(Import)]を押せばPuTTYで保存したセッションのリストが表示されます。
  3. 取り込みたいセッションにチェックを付けて、[取り込み(Import)]ボタンを押せば設定が取り込まれます。
  4. 使い方はPuTTYと同じです。保存されているセッションを開いて、パスワードを入力すれば接続できます。

情報科学部アプリケーションサーバ

今回接続する情報科学部のアプリケーションサーバからはラボ環境のホームディレクトリにアクセスすることができます。

図のようにラボ環境ではファイル本体をラボマシンとは別のファイルサーバに保存し、ラボマシンやアプリケーションサーバはネットワークを通してこのファイルを共有しています。