SSHの公開鍵と秘密鍵の関係

ID/パスワードなしでログインできるしセキュリティも向上するしで、SSHの公開鍵認証によるログインはお勧めです。

ですが、いまいち公開鍵と秘密鍵って??とか、どっちで鍵生成するんやったっけ??って、いつも分からなくなるので図示してみました。

SSH鍵生成

まずは鍵生成で分からなくなるのが、どっち(サーバ/クライアント)で鍵を生成して、どっち(公開/秘密)の鍵を移動するのか。

クライアント(ログイン元)が左側で、サーバ(ログイン先)が右側とします。

画像未復旧: ssh鍵生成

  • クライアント(ログイン元)で鍵生成

  • 公開鍵をサーバに移動(クライアント側には公開鍵は不要)

  • 公開鍵を~/.ssh/authorized_keys に追記

このときauthorized_keysの権限も確認します。600になっていなければ、変えておきます。

chmod 600 authorized_keys

※Windowsだとちょっと生成方法とか違うので、クライアントもサーバもlinuxベースで考えてます。

SSH公開鍵認証

で、実際、公開鍵認証するときの概要も図示してみました。(参考:公開鍵暗号でSSHのセキュリティを高める

画像未復旧: ssh鍵ログイン

まとめ
  • 鍵の生成はクライアント

  • 公開鍵サーバのauthorized_keysに追加

関係ないですが、こうゆう図を書くのにCacoo使ってみたのですが、なかなか使えそうです。イラレとかなくてもある程度必要な図がすでにあるのでいいですね。

参考

鍵交換方式による認証