[TEBIKI]SSHサーバへの公開鍵認証によるログイン
[計算機とネットワークの手引集へ戻る]
公開鍵認証とは
公開鍵認証とは, パスワードの代わりに 公開鍵とプライベート鍵のペアを用いる認証方法です.
公開鍵認証による利点は, 鍵そのものがネットワーク上を流れない ことです. 通常のパスワードを使った認証では, たとえ暗号化されているとはいえパスワードがネットワーク上を 流れます. 公開鍵認証ではパスワードはまったく (暗号化された形ですら) ネットワーク上に流れません. もちろん公開鍵認証でもユーザはパスワードに相当するもの (パスフレーズ) を入力しますが, パスワード認証と違い これはローカルマシン上でプライベート鍵を復号するためだけに使われ, ネットワーク上には流れません. (参考: OpenSSH を使った簡易 VPN の構築 -- 「公開鍵認証とは」 )
なお, プライベート鍵は秘密鍵と呼ばれることもありますのでご注意ください.
作業の概要
公開鍵認証をするには, 以下の準備が必要です.
- 公開鍵とプライベート鍵の対(つい;ペアー)を作成
- 接続元の計算機にプライベート鍵を置く
- 接続先の計算機に公開鍵を置く
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 ログインの方法を解説します.
MobaXTerm での鍵の生成およびログイン
[TEBIKI]MobaXTerm を用いた 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サーバに接続する際は特ににいじらなくてよい.
パスフレーズとは?
パスフレーズは, 鍵そのものの暗号化に用いられる文字列で, 空白文字も許容 します. (従って, パス「ワード」でなくパス「フレーズ」と呼ばれるわけで す). ただし, 空白文字を許容する場合, 万が一プライベート鍵を奪取されると即座に 接続先の計算機上の自分のアカウントが乗っ取られるため, 原則的に何らかのパスフレーズを入力して下さい.
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]MobaXTerm を用いた SSH サーバへのログイン] [[TEBIKI]Tera Term を用いた SSH サーバへのログイン] [消えたページ一覧] [計算機とネットワークの手引集] [ITPASS 特別実習]