CentOSでSSH鍵認証を導入する手順

VPSサーバーなど、自分がroot権限を握って管理する場合は、サーバーへのログインにSSH鍵認証を導入するべきです。このページでは、CentOSのサーバーにSSH鍵認証を導入するやり方を解説します。

概要

  • サーバーに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文字以上)を入力してください。サーバーログイン時に使うことになるので、紙に書くか、パスワード管理ソフトに登録しておきましょう。
  • コメントには、鍵を使うサーバー名かなんかを入れておけばいいと思います。
パスフレーズとコメントを入れたら、「公開鍵」と「秘密鍵」を保存します。この2つでワンセットです。
「公開鍵」は、「公開鍵の保存」ボタンを押して、拡張子.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の方)を参照し、ユーザー名と「秘密鍵のパスフレーズ」を入力し、ログインしてください。

このブログを応援する・寄付する

当ブログでは暗号通貨による寄付を募っております。

モナゲボタン モナゲボタン

Bitcoin:

Monacoin:

Litecoin: