====== SSH公開鍵アクセス設定 ======
==== 前提条件 ====
* ZoneExpressでは[[http://www.openssh.org/ja/|OpenSSH]]がデフォルトでインストール済みです。
* 本説明では端末エミューレータに[[http://sourceforge.jp/projects/ttssh2/|TeraTerm Pro]]を利用しています。SSH2に対応した端末エミュレータをご利用ください。
* 本説明はZoneExpressにSSH公開鍵アクセス設定をする際の手順です。他のサーバーでは異なる場合があります。
===== 設定ファイルの編集 =====
sshd_configを以下のように編集します。
$ cd /etc/ssh
$ sudo vim sshd_config
パスワードでのログインを禁止する
PasswordAuthentication yes
↓
PasswordAuthentication no
対話的キーボード認証をコメントアウトし不可にする
PAMAuthenticationViaKBDInt yes
↓
#PAMAuthenticationViaKBDInt yes
===== SSH2プロトコルキーの作成 =====
秘密鍵、公開鍵の作成を行います。鍵の作成は一般ユーザーで行います。
$ /usr/bin/ssh-keygen -t rsa
公開/非公開 rsa 鍵のペアを生成しています。
鍵を保存するファイルを入力してください (/home/admin/.ssh/id_rsa): <--鍵の名前を入力(空Enterでデフォルト)
パスフレーズを入力してください (パスフレーズなしの場合は空): <--パスワードを入力
パスフレーズをもう一度入力してください: <--パスワードを再入力
識別情報が /home/admin/.ssh/id_rsa に保存されました。
公開鍵が /home/admin/.ssh/id_rsa.pub に保存されました。
鍵のフィンガープリント:
c3:e1:63:dd:5e:a8:1f:61:9d:eb:63:d5:86:3d:91:e7 hoge@example.jp
秘密鍵、公開鍵が作成された事を確認
$ cd ~/.ssh
$ ls -la
合計 14
drwx------ 2 admin staff 4 5月 8日 10:46 ./
drwxr-xr-x 6 admin staff 17 5月 7日 17:47 ../
-rw------- 1 admin staff 951 5月 8日 10:46 id_rsa <--秘密鍵
-rw-r--r-- 1 admin staff 236 5月 8日 10:46 id_rsa.pub <--公開鍵
公開鍵をリネームしパーミッションを変更します
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
元ファイルを削除します。
$ rm -f ~/.ssh/id_rsa.pub
$ rm: /home/admin/.ssh/id_rsa.pub を消去しますか (yes/no)? y
===== 秘密鍵をクライアントに保存 =====
id_rsaファイルをクライアント側に保存します。\\
ここでは、ファイルの内容をコピー&ペーストしてクライアントに保存しています。
秘密鍵をクライアント側に保存する際、ネットワーク経由での送付はセキュリティ上、推奨されません。
【id_rsaの表示例】
^{{:ssh001.gif|}}^
===== sshの再起動 =====
$ sudo svcadm restart ssh
===== 端末エミュレータからアクセス =====
=== 鍵なしのアクセス確認 ===
端末エミュレータを起動し、秘密鍵の設定をせずに、アクセスが不可である事を確認してください。\\
=== 鍵ありのアクセス確認 ===
以下の画面はTeraTermを利用した場合となります。
^{{:ssh002.gif|}}^
|TCPポート#(P)|22|
|サービス|SSHを選択|
|SSHバージョン|SSH2を選択|
^{{:ssh003gif.gif|}}^
|ユーザ名|ユーザ名を入力|
|パスフレーズ|パスワードを入力|
|RSA/DSA鍵を使う|チェックを入れる|
|秘密鍵|クライアントに保存したid_rsaファイルを指定する|
以上で、SSHアクセスの設定は完了です。
===== 関連リンク =====
* [[http://www.openssh.org/ja/|OpenSSH]]
* [[http://sourceforge.jp/projects/ttssh2/|UTF-8 TeraTerm Pro with TTSSH2]]