Serversman@VPS #02 [ssh接続の設定/公開鍵認証の設定]

ssh接続で、公開鍵認証をします。 参考にさせていただいたサイトはこちら ⇒ssh公開鍵認証手続き まずは秘密鍵と公開鍵の作成。 あ、ちなみに私はmacで作業していますのであしからず。 クライアント側で鍵の作成(自分が使っているパソコンで)

鍵の作成$ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (.ssh/id_rsa): ←鍵を作成するフォルダ デフォルトでいいならそのままエンター Enter passphrase (empty for no passphrase):  ←鍵のパスワード パスなしならそのままエンター Enter same passphrase again: ←上と同じパスワードを入力 パスなしならそのままエンター Your identification has been saved in /.ssh/id_rsa. Your public key has been saved in /.ssh/id_rsa.pub. The key fingerprint is: [鍵の情報がつらつらと] The key's randomart image is: +--[ RSA ]----+ [鍵のイメージがここに] +-----------------+

これで鍵の作成が完了です。 id_rsa秘密鍵 id_rsa.pub が公開鍵 になります。 それぞれパーミッションをしっかり設定しないと使えないので注意!

.sshと鍵のパーミッション設定$ ls -la    ←すべてのフォルダの詳細一覧が表示される drwx------ 6 username staff 204 3 1 17:58 .ssh ↑ここに注目!drwx------ (パーミッション700)に設定されている必要があります。 別の状態になっている場合は $ chmod 700 .ssh   ←.sshフォルダのパーミッションを700に変更する $ cd .ssh $ ls -la -rw------- 1 username staff 1675 3 1 16:10 id_rsa 同様にid_rsa(秘密鍵)のパーミッションも変更します。 -rw-------(600)でないといけません!! $ chmod 600 id_rsa 最後にちゃんと変更されたかを確認しておいてください。

これで準備完了。 この公開鍵をサーバー側に置いておき、秘密鍵を使ってサーバーにアクセスしにいくことで、鍵を使ったsshログインが可能になります。 Windowsで作成する場合は、別途記事を書く予定なので、そちらを参考にしてください。 公開鍵をサーバーに置きます。私はftpを使ってそのまま一旦アップロードしました。 ftpのインストールと起動、使い方はこちらを参考にさせていただきました!わかりやすい! ⇒自宅サーバープロジェクト:FTPサーバーのインストール ※私はホームディレクトリ直下にid_rsa.pubを置きました。 公開鍵は決まった名前で決まった場所に保存する必要があります。 ログインするアカウントのホームディレクトリ内に.sshを作成後、その中に公開鍵を入れる必要があります。 ルートディレクトリに入っていると、root権限でしか認証ができません!!必ずログインするアカウントのホームディレクトリに置いておきます。 共有する方法があるのかな?とは思うものの。わからないのでとりあえずこれで。 サーバー側の設定です。

公開鍵を設置、設定するログイン後 $ mkdir -m 700 .ssh  パーミッション700ディレクトリを作成。そのまま作成しちゃったら上のパーミッション設定を参考に変更してください。700です。 $ cp id_rsa.pub > .ssh/authorized_keys  id_rsa.pubを.sshにauthorized_keysという名前で保存します   必ずauthorized_keysという名前で保存しておいてください。 $ rm id_rsa.pub  コピーしたらもういらないので削除しておきます。 $ cd .ssh $ ls -la -rw------- 1 usename root 402 Mar 1 16:58 authorized_keys $ chmod 600 authorized_keys  同様にこちらの公開鍵もパーミッションを600にしておきます

これで鍵の準備は完成です! sshの設定も鍵認証に切り替えておきましょう。su権限に変更し、sshd_configを変更します。 sshd_configファイルの内容はこちらで丁寧に紹介されています。 ⇒SSHD_CONFIG(5) わからなくなったり、自分なりにカスタム設定したい場合は参考にしてください。

sshd_configの設定をする$ su  ←スーパーユーザー権限に切り替えます

cd  ←ルートディレクトリに移動

vi /etc/ssh/sshd_config  sshd_configを変更します

PubkeyAuthentication yes  コメントアウトされているのでチェックを外す AuthorizedKeysFile .ssh/authorized_keys  コメントアウトされているのでチェックをはずす 見つからない場合は追記してください。詳細は上のリンク先みてくださいw PasswordAuthentication no  ←パスワード認証拒否 これは鍵認証が上手く行くか試してから変更することをおすすめします!!!
変更を加えて保存したらsshdを再起動します

/etc/init.d/sshd  ←再起動

Stopping sshd: [ OK ] Starting sshd: [ OK ] #

設定完了。 ここまでの設定で参考にさせていただいたサイトがいくつか。調べまくったーw ⇒鍵認証〜公開鍵の登録ServersMan@VPSのCentOS 5で最初にする設定SSHで公開鍵認証を使う  エラー時対策なども載っているのでとても参考になりました!

ログインを試してみる$ ssh -i [~/.ssh/id_rsa] -p [ポート番号] -l [アカウント] [ホスト] 鍵にパスコードを設定しなかった場合、そのままログインできるハズです! どうしてもパスワード認証になってしまう場合はパーミッション設定を見直してください!!

ここまでたどり着くのにかなり苦労しました。 初めてのサーバーに初めてのVPS。まだまだ勉強が必要です。