公開鍵認証方式でのSSH設定を記載します。
SSH接続にはパスワード認証方式も有ります。
それぞれのSSH接続方法でのTeraTermマクロでの
自動ログイン設定については以下のページに記載しました。
またCentOS7でのSSH接続(公開鍵認証方式)の設定方法は以下のページに記載しました。
本ページの目次
基本的にはWindows端末(接続元)でキーペアを作成し、公開鍵を接続先へ渡す方法のほうが
推奨されるよう(秘密鍵を渡すのはリスクが伴なうため)ですが今回は敢えて接続先でキーペアを
作成し、接続元へ秘密鍵を渡す手順で行ないます。
まず始めにSSH接続用にユーザーを作成します。
この時点で正しくSSH接続(パスワード認証)を行えることを
確認します。TeraTermを使用しSSH接続を行いました。
この接続ウィンドウはそのまま残しておきます。
SSHサーバがインストールされているか検索します。
/etc/sshディレクトリには以下のものが有りました。
sshd_configのバックアップを取っておきます。
※-aオプションの意味は、「できるだけ属性や構造を保持する。」
SSHの設定をするためにviエディタでsshd_configを編集します。
以下の4点を編集しました。
を
へ変更しました。
を
へ変更しました。
編集後、SSHサービスを再起動します。
ユーザーをuser1へ切り替えます。
公開鍵/秘密鍵のペアを作成します。
※~/.sshディレクトリが作成され、そこに2つの鍵ファイルが作成されます。
パスフレーズは1~4文字では弾かれるようです。
2つのファイルが作成されたことを確認します。
「id_rsa」が秘密鍵、「id_rsa.pub」が公開鍵です。
「id_rsa.pub」の内容を「authorized_keys」という名前の
新規ファイルへ入れこみます。
教科書的に言えば、「生成した公開鍵を公開鍵リストに追加します。」
※「authorized_keys」には複数の公開鍵の内容を入れられるため
今後追記することも想定してか、初回から「>>」を使用するのが一般的のようです。
※RSA公開鍵を使用する場合は、RSA公開鍵の内容を 「authorized_keys」に入れ、
DSA公開鍵を使用する場合は、DSA公開鍵の内容を「authorized_keys2」 に入れます。
「authorized_keys」のパーミッションを600に設定します。
「id_rsa」ファイルをWindowsへコピーします。
ネットワークを経由せずに記憶媒体で送る方が安全ではあります。
今回はSSH(パスワード認証)で「id_rsa」ファイルをコピーしました。
先ほどから接続していたTeraTermのメニューの「ファイル」→
「SSH SCP」から「id_rsa」ファイルをコピーします。
コピーし終わったら接続先(CentOS SSHサーバ)内の「id_rsa」は削除しておきます。
残りの「id_rsa.pub」の扱いについては、他のSSHサーバでも流用しないのであれば削除で
良いかと思います。
SSH接続ソフトはTera Termを使用しました。
Tera Term(UTF-8やSSH/SSH2に対応した「Tera Term Pro」の拡張版)ダウンロードページ
接続先のIPアドレスを入力し、SSH2を選択して「OK」をクリックします。
クリックした後、5秒くらい待つと初回接続時はknown_hostsファイルへ
登録するかを確認してくるので承認して下さい。
キーを作成したユーザー名、作成した際のパスフレーズ、RSA鍵の場所を
指定し「OK」をクリックします。
ログイン出来ました。
接続元でキーペアを作成し、公開鍵を接続先へ渡す方法です。
はじめに接続元でSSH接続用にユーザーを作成します。
ユーザーをuser5へ切り替えます。
※~/.sshディレクトリが作成され、そこに2つの鍵ファイルが作成されます。
パスフレーズは1~4文字では弾かれるようです。
2つのファイルが作成されたことを確認します。
「id_rsa」が秘密鍵、「id_rsa.pub」が公開鍵です。
「id_rsa.pub」の方を接続先へ送ります。
今回はファイル共有で接続先の /home/user5/ へ送りました。
送った後の接続元の「id_rsa.pub」は削除しておきます。
※SCPコマンドで送る場合
接続先の/etc/ssh/sshd_configファイルをviエディタで開き、
に編集します。
その後接続元から接続先へSCPで送ります。
「The authenticity of host........ 」と表出され、
承認すると「known_hosts」が作成されます。
接続先での操作に移ります。
接続先でも同じ名前のユーザーを作成します。
ユーザーをuser5へ切り替えます。
ホームディレクトリ直下に「.ssh」ファイルを作成します。
「.ssh」ファイルの権限を700にします。
接続元から貰った「id_rsa.pub」の内容を「authorized_keys」という
名前の新規ファイルへ入れこみます。
教科書的に言えば、「接続元で生成した公開鍵を接続先の公開鍵リストに追加します。」
※「authorized_keys」には複数の公開鍵の内容を入れられるため
今後追記することも想定してか、初回から「>>」を使用するのが一般的
のようです。
※RSA公開鍵を使用する場合は、RSA公開鍵の内容を「authorized_keys」 に入れ、
DSA公開鍵を使用する場合は、DSA公開鍵の内容を「authorized_keys2」 に入れます。
「authorized_keys」のパーミッションを600に設定します。
rootユーザーへ変更します。
sshd_configのバックアップを取っておきます。
※-aオプションの意味は、「できるだけ属性や構造を保持する。」
SSHの設定をするためにviエディタを使用してsshd_configを編集します。
以下の4点を編集しました。
①rootログインを拒否する
②空パスワードでのログイン禁止にする
③パスワードでのログインは拒否する
を
へ変更しました。
④公開鍵認証方式を使用する
を
へ変更しました。
編集後、sshdサービスを再起動します。
接続元の操作に移ります。
「ssh 接続先のIPアドレス」を入力します。
※入力した時点で、万一「.ssh」ディレクトリに
秘密鍵「id_rsa」が無い場合はログインできません。
Permission denied (publickey,gssapi-with-mic).
通常は以下のように聞かれるので「yes」と入力します。
The authenticity of host ,192.168.179.128 (192.168.179.128), can,t be established.
RSA key fingerprint is f3:6f:b3:99:4b:db:29:f1:66:72:ea:b4:3b:92:93:08.
Are you sure you want to continue connecting (yes/no)? yes
以下のように聞かれるのでパスフレーズを入力します。
Warning: Permanently added ,192.168.179.128, (RSA) to the list of known hosts.
Enter passphrase for key ,/home/user5/.ssh/id_rsa,:
ログインできました。
Last login: Sat Sep 4 22:31:21 2010 from 192.168.179.129
パスフレーズの入力を省く方法は以下です。
※通常ユーザーでは実行不可でした。
ssh-agentについては以下のサイトが詳しいです。