====== 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]]