自宅サーバー設定~SSHの設定(2)RSA鍵を生成する

・パスワード方式は鍵交換方式に比べて、パスワードが漏れたり、
辞書攻撃、総当り攻撃で不正侵入される可能性が高い。
・鍵交換方式でであれば、秘密鍵が漏れない限りは不正侵入される可能性が非常に低くなる。

不正侵入の可能性を減らすため、
接続には鍵交換方式(公開鍵と秘密鍵を使う方式)を使用します。



●鍵交換方式の鍵を生成する

まずは、公開鍵と秘密鍵を作成します。
今回は、サーバーのLinuxマシンで鍵を作成しました。

コマンド:ssh-keygen

認証用の鍵を生成、管理、および変換するコマンドです。



(1)鍵の生成をする

以下の操作は、SSHでログインするユーザーで行う必要があります。

$ssh-keygen -t rsa

上記コマンドを実行すると

Generating public/private rsa key pair.
Enter file in which to save the key (/home/[user]/.ssh/id_rsa):

ここでEnterを押すと、ディレクトリ「/home/[user]/.ssh」に
「id_rsa」というファイル名の秘密鍵と公開鍵が作成されます。
ディレクトリを変更したい場合は変更先のディレクトリを入力することになります。

Enter passphrase (empty for no passphrase): 

パスフレーズ(SSH接続の際、必要となるパスワード)を入力します。
(任意の文字列を設定します。)

Enter same passphrase again:

確認のためもう一度入力します。

Your identification has been saved in /home/[user名]/.ssh/id_rsa.
Your public key has been saved in /home/[user名]/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx [user名]@localhost.localdomein

これで鍵が生成されました。

※コマンドの引数で鍵の種類を指定することが出来ます。

tオプション
rsa1(RSA鍵 プロトコル バージョン 1)
rsa(RSA鍵 プロトコル バージョン 2)
dsa(DSA鍵 プロトコル バージョン 2)

最初、間違ってrsa1鍵を作成したにもかかわらず、
気がつかずに、プロトコルバージョン2でログインしようとしていて
「Disconnected: No supported authentication methods available」
というエラーを何度も出していました。
PuTTYのコマンドをよく見たら「SSH1」の文字があったんですけどね・・・・。



(2)鍵の設定をする(サーバー側)

$cd /home/[user名]/.ssh/
$ls
id_rsa id_rsa.pub

ssh-keygenコマンドを実行すると
・id_rsa(秘密鍵)
・id_rsa.pub(公開鍵)
の二つが生成されています。

公開鍵 id_rsa.pub

同一ディレクトリに「authorized_keys」という名前でコピーします。

$cp id_rsa.pub authorized_keys

すでに「authorized_keys」が存在する場合は内容を追加します。

$cat id_rsa.pub >> authorized_keys

「authorized_keys」のパーミッションを変更します。

$chmod 600 authorized_keys

秘密鍵 id_rsa

パーミッションを変更します。

$chmod 600 id_rsa

クライアントへ「id_rsa」を送付します。



(1)鍵の設定をする(クライアント側)

送付された秘密鍵をクライアントへ認識させます。

今回使用するクライアントはPuTTYです。

PuTTY用鍵設定

(1) puttygen.exeを起動します。

(2) メニューから Conversions → Import key を選択します。

(3) keyとして、サーバーから送付しておいた「id_rsa」を指定します。

(4) パスフレーズの入力を求められますので、設定したパスフレーズを入力します。

(5) [Save private Key]ボタンをクリックして、PuTTY用の秘密鍵(id_rsa.PPKとします。)を保存します。

PuTTY接続

(1) puttyjp.exeを起動します。

(2) [セッション]にホスト名またはIPアドレスを入力します。(プロトコルは[SSH])
 
(3) [接続]→[自動ログインのユーザ名]鍵作成を行ったLinuxのユーザーIDを入力します。
   (設定せず毎回入力してもかまいません)

(4) [SSH]優先するプロトコルバージョンを[2](または[2 only])に設定します。

(5) [SSH]→[認証] 認証のためのプライベートキーファイルに、PuTTY用の秘密鍵(id_rsa.PPK)を指定します。

(6) 接続するとパスフレーズの入力を求められますので、設定したパスフレーズを入力します。

ローカルネットワーク内でSSHによるリモート操作ができるようになりました!

次の目標はローカルネットワークの外からのSSH接続です!

今回参照させていただいたのは以下のページです。
@IT:Linuxでsshの鍵を作成するには
Putty で ssh2 を使用した接続について

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください