CentOSでSSH鍵認証を導入する手順
投稿日:2015年09月07日
最終更新日:
概要
- サーバーにSSHをインストールする。
- SSH公開鍵と秘密鍵を作成する。
- 鍵認証を行うユーザーで、鍵をサーバーに登録する。
- 必要に応じてSSHの設定を変更。
- SSH鍵認証でログインできれば成功。
SSHのインストール(サーバー)
もしサーバーにSSHがインストールされていない場合は、以下のコマンドでインストールしてください。(sudoできるユーザーで実行すること) [VIM] sudo yum -y install openssh openssh-server openssh-clients #SSHをインストール sudo service sshd start #SSHを起動 chkconfig –list sshd #SSHのランレベルを調べる #結果 sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off # 3:on ならOK(次のステップへ) sshd 0:off 1:off 2:off 3:off 4:off 5:off 6:off # 3:off なら下のコマンドを実行 # 3:offの時のコマンド sudo chkconfig sshd on #SSHサービスを自動起動させる [/VIM] SSHがインストール・起動済みの場合は次のステップに進みます。SSH鍵の生成(ローカル)
PuTTYでのやり方はこちらで解説します。今回はTera Termで生成します。どちらでもお好みで。
Tera Termを起動して、「設定」→「SSH鍵生成」
「生成」
- パスフレーズは、それなりの長さの半角英数字(最低でも8文字以上)を入力してください。サーバーログイン時に使うことになるので、紙に書くか、パスワード管理ソフトに登録しておきましょう。
- コメントには、鍵を使うサーバー名かなんかを入れておけばいいと思います。
「公開鍵」は、「公開鍵の保存」ボタンを押して、拡張子.pubで保存してください。
「秘密鍵」は、「秘密鍵の保存」ボタンを押して、拡張子.ppkで保存してください。
公開鍵と秘密鍵の対応はしっかり取りましょう。ごちゃごちゃにならないように気をつけて保管してください。
鍵の登録(サーバー・ローカル)
鍵セットを用意できたら、サーバーに「公開鍵」を登録します。「鍵認証を行うユーザーで」サーバーにログインしてください。Tera Termでのログインを推奨します。 [VIM] pwd #カレントディレクトリの確認 #結果 /home/ユーザー名 mkdir -m 700 .ssh #SSH鍵を登録するディレクトリを作成 cd .ssh #SSH鍵を登録するディレクトリに移動 vim authorized_keys #SSH鍵のファイルを作成 [/VIM] vimが起動するので、まずは「A」のキーを押して編集できるモードにします。それから、先ほど作成した公開鍵のファイル(拡張子.pubの方)をテキストエディタで開き、中身をまるごとコピーします。コピーしたら、それをまるごとペーストします(Alt+Vか右クリックで可能)。ペーストし終わったら、「Esc」キーを押して、「:wq」と打ち込んでください。これで保存完了です。Tera Termを使っているなら(と言うかその前提で話を進めてる)、vimで「A」のキーを押して編集できるモードにしたら、公開鍵のファイル(拡張子.pubの方)をvimで編集しているところの画面にドロップ→「ファイル送信」で一瞬にしてコピペが終わるので、ローカルではテキストエディタに触れることなく作業が終了します。
保存完了したら、 [VIM] chmod 600 authorized_keys [/VIM] これで鍵の登録作業は終了です。サーバー側の設定
ここからは、SSHで鍵認証を使えるようにサーバー側の設定を変更します。今度はsudoできるユーザーでログインしてください。 [VIM] sudo vim /etc/ssh/sshd_config #SSHの設定ファイルを編集 #コメントアウトを解除する箇所・書き換える箇所(一応上から) Port 22 # ここで1025以上の任意の番号(4桁か5桁の前半あたりが良いと思われる)に書き換えても良い(その番号はきちんと覚えておくこと・iptablesでポートを開けること) PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys #ここはコメントアウトを解除するだけ PermitRootLogin no #rootログインを封印する(#PermitRootLogin yes の下辺りに記述する・sudoできるユーザーが居ることを確認すること) PasswordAuthentication no #平文パスワード認証によるログインを禁止する(PasswordAuthentication yes を書き換える・SSH公開鍵認証でsudoできるユーザーがログインできることを確認してから変更) [/VIM] 私の場合は、このあたりを書き換えました。ポート番号を変更する場合はポートの開放設定も忘れずに。書き換え終わったら、 [VIM] sudo service sshd restart [/VIM]ログインのテスト
それでは、公開鍵を登録したユーザーでログインしてみましょう。
Tera Termで、接続先サーバー情報を入力して接続します。ポート番号を変更した場合は変更後の番号を入れてください。
「RSA/DSA/ECDSA/ED25519鍵を使う」に切り替え、用意した「秘密鍵」(拡張子.ppkの方)を参照し、ユーザー名と「秘密鍵のパスフレーズ」を入力し、ログインしてください。