[TEBIKI]SSHサーバへの公開鍵認証によるログイン

[計算機とネットワークの手引集へ戻る]

公開鍵認証とは

公開鍵認証とは, パスワードの代わりに 公開鍵とプライベート鍵のペアを用いる認証方法です.

公開鍵認証による利点は, 鍵そのものがネットワーク上を流れない ことです. 通常のパスワードを使った認証では, たとえ暗号化されているとはいえパスワードがネットワーク上を 流れます. 公開鍵認証ではパスワードはまったく (暗号化された形ですら) ネットワーク上に流れません. もちろん公開鍵認証でもユーザはパスワードに相当するもの (パスフレーズ) を入力しますが, パスワード認証と違い これはローカルマシン上でプライベート鍵を復号するためだけに使われ, ネットワーク上には流れません. (参考: OpenSSH を使った簡易 VPN の構築 -- 「公開鍵認証とは」 )

なお, プライベート鍵は秘密鍵と呼ばれることもありますのでご注意ください.

作業の概要

公開鍵認証をするには, 以下の準備が必要です.

  1. 公開鍵とプライベート鍵の対(つい;ペアー)を作成
  2. 接続元の計算機にプライベート鍵を置く
  3. 接続先の計算機に公開鍵を置く

Unix 系 OS

Unix 系 OS (Unix, Linux, FreeBSD, Mac OS X 等) では, OpenSSH に含まれるコマンド (ssh, ssh-keygen 等) を使用する場合の 例をとります.

Unix 系 OS での鍵の生成

以下のコマンドで, RSA 形式の公開鍵・プライベート鍵を作成します.

% ssh-keygen -t rsa -b 4096

パスフレーズの入力を求められるので, 入力して下さい. パスフレーズについては パスフレーズとは? を参照してください.

デフォルトでは, 公開鍵として ~/.ssh/id_rsa.pub, プライベート鍵として ~/.ssh/id_rsa が作成されます. プライベート鍵は他人から見られないよう, パーミッションに気をつけてください. (メールで送信するなどは厳禁です). ネットワークを介して鍵をコピーする 際にも必ず暗号化するようにして下さい.

DSA形式の鍵を使っても構いません. DSA形式の鍵を作る場合は, 例のうちrsaという文字列をdsaに置き換えてください.

Unix 系 OS でのサーバへの鍵の設置

接続先の計算機が ITPASS サーバ の場合には gate 登録システムの登録または更新/変更窓口 から設置を行います. 「個人/グループユーザ登録内容更新/変更ページ」へ進み 「公開鍵」の欄に公開鍵ファイルの中身を貼り付けてください.

既にサーバに何らかの手段でログインできる場合には, scp コマンド等で 公開鍵を接続先の計算機にコピーし, ファイルの中身を ~/.ssh/authorized_keys に書き込んでください. 例えば, コピーした公開鍵のファイル名が id_rsa.pub の場合には, 以下のようにすると良いでしょう.

% cat id_rsa.pub >> ~/.ssh/authorized_keys

Unix 系 OS からのログイン

ssh, slogin などでログインできるかどうか試して下さい. 以下は接続先の計算機が itpass.scitec.kobe-u.ac.jp である場合の例です.

% ssh itpass.scitec.kobe-u.ac.jp

パスフレーズを聞かれるため, Unix 系 OS での鍵の生成 で設定したパスフレーズを入力します.

なお, SSH にはプロトコルバージョン 1 と 2 があります. 接続先の計算機が受け付けるプロトコルバージョンと手元の ssh コマンドのプロトコルバージョンが異なるとログインできない場合もあります. その場合には, 以下のようにプロトコルバージョンを明示してアクセスすると 良いでしょう.

% ssh -1 epa.scitec.kobe-u.ac.jp

% ssh -2 epa.scitec.kobe-u.ac.jp

Windows

Windows ユーザ向けに, Tera Term と Poderosa という 2つのソフトによる TTSSH を使った SSH ログインの方法を解説します.

Tera Term での鍵の生成およびログイン

[TEBIKI]Tera Term を用いた SSH サーバへのログインを参照してください

Poderosa での鍵の生成

Tera Term と同様のソフトに Poderosa というソフトがあります. 以下 Poderosa を用いるログイン方法について紹介します.

  • 必要な資源のインストール

    • (1) Microsoft .NET Freamework をインストール.

      Poderosa を動かすために必要な, 実行環境と呼ばれる追加プログラムです. これがまだ PC にインストールされていない場合, まず Microsoft .NET Freamework をインストールします. インストールされているかどうかは 「コントロール パネル」->「プログラムの追加と削除」にて確認できます.

    • (2) Poderosa をインストール.

    2 つとも, このページ から最新版を入手できます.

  • インストール後,Poderosaを起動
  • 「メニュー」→「ツール」→「SSH鍵生成ウィザード」を選択
  • 「任意のパスフレーズ」欄に自分で考えた文字列を入力. 「確認入力」にも同じ文字列を入力
  • 「鍵を生成します.このウィンドウの中でマウスを乱雑に動かして, 乱数を供給してください」とメッセージが出るので,指示に従い 乱数を生成する.
  • 「秘密鍵を名前をつけて保存」「OpenSSH形式で公開鍵を名前をつけて保存」 をそれぞれ選択し鍵を保存.

後はこの公開鍵をサーバへ設置します. 設置方法は Tera Term で生成した公開鍵のサーバへの設置と同じです.

Poderosa からのログイン

「ファイル」→「新規 Telnet/SSH 接続」で「新規接続」画面が 現れるので, 以下のように設定する.

  • 「ホスト」接続したいサーバのIPアドレス, またはサーバ名
  • 「プロトコル」SSH2
  • 「ポート」SSH(22)
  • 「ユーザ名」ユーザ名
  • 「認証方法」公開鍵
  • 「パスフレーズ」鍵ペア作成時に設定したパスフレーズ
  • 「鍵ファイル」鍵ペア作成時に保存した秘密鍵を選択
  • 「エンコーディング」システムの文字コード ( UTF-8 )
  • 「ローカルエコー」しない
  • 「改行の送信」CR
  • 「種類」xterm

「OK」を押せば接続できます.

"ターミナル" の設定は, ITPASSサーバに接続する際は特ににいじらなくてよい.

パスフレーズとは?

パスフレーズは, 鍵そのものの暗号化に用いられる文字列で, 空白文字も許容 します. (従って, パス「ワード」でなくパス「フレーズ」と呼ばれるわけで す). ただし, 空白文字を許容する場合, 万が一プライベート鍵を奪取されると即座に 接続先の計算機上の自分のアカウントが乗っ取られるため, 原則的に何らかのパスフレーズを入力して下さい.

参考資料

Last modified:2015/04/15 16:28:55
Keyword(s):
References:[[Exp2008]シェルスクリプト課題] [[Exp2008]情報実験機に遠隔ログインするために] [[Exp2008]数値計算ライブラリインストール課題] [[Exp2008]EPAサーバのアカウント作成] [[Exp2009]シェルスクリプト課題] [[Exp2009]ITPASSサーバのアカウント作成] [[Exp2009pre] EPA サーバのアカウント作成] [[Exp2010]シェルスクリプト課題] [[Exp2010]ITPASSサーバのアカウント作成] [[Exp2011]シェルスクリプト課題] [[Exp2011]ITPASSサーバのアカウント作成] [[Exp2012]シェルスクリプト課題] [[Exp2012]ITPASSサーバのアカウント作成] [[Exp2013]シェルスクリプト課題] [[Exp2013]ITPASSサーバのアカウント作成] [[Exp2014]シェルスクリプト課題] [[Exp2014]ITPASSサーバのアカウント作成] [[Exp2015]シェルスクリプト課題] [[Exp2015]ITPASSサーバのアカウント作成] [[Exp2016]シェルスクリプト課題] [[Exp2016]ITPASSサーバのアカウント作成] [[Exp2017]シェルスクリプト課題] [[Exp2017]ITPASSサーバのアカウント作成] [[Exp2018]シェルスクリプト課題] [[Exp2018]ITPASSサーバのアカウント作成] [[Exp2019]シェルスクリプト課題] [[Exp2019]ITPASSサーバのアカウント作成] [[TEBIKI]Tera Term を用いた SSH サーバへのログイン] [消えたページ一覧] [計算機とネットワークの手引集] [ITPASS 特別実習]