公開鍵暗号を用いてのSSH接続(初歩)

  • 25
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。
  • クライアント:Mac
  • サーバー: LInux(Ubuntu)

を用いて、公開鍵と秘密鍵の生成から公開鍵暗号でのSSH接続までのまとめです。

公開鍵と秘密鍵の生成

RSA暗号の鍵を生成する場合は、オプションで -t rsa を入力します。

$ ssh-keygen -t rsa

これで、~/.ssh/ ディレクトリに id_rsa (秘密鍵)と id_rsa.pub (公開鍵)が生成されていることがわかるかと思います。

※ SSH秘密鍵のパスフレーズをつけるべきかどうかについては下記記事が参考になりました。
SSH秘密鍵のパスフレーズは(つけるなら)11文字以上にしましょうねという話 - 本当は怖い情報科学

サーバーに公開鍵を渡す

サーバーの .ssh/authorized_key に、先ほど作成した id_rsa.pub を渡します。

$ scp -P 22 ~/.ssh/id_rsa.pub <ユーザ名>@<IPアドレス>:~/.ssh/authorized_keys

パーミッションの変更

クライアント側、サーバ側ともにパーミッションを変更します。

# クライアント側
$ chmod 700 ~/.ssh

# サーバ側
$ chmod 600 ~/.ssh/authorized_keys

※ ここのパーミッション設定を正しく行わないと公開鍵認証でのSSH接続がうまく機能しないみたいなので要注意

※ パーミッションについては下記も参照
パーミッションの考え方について毎回よく分からなくなるからまとめ

接続確認

$ ssh <ユーザ名>@<IPアドレス>

秘密鍵生成時にパスフレーズを作成している場合はここで尋ねられるので、入力すると接続されるはずです。

SSHのパスワード認証を禁止する

公開鍵認証を設定したのでパスワード認証を禁止しましょう。

# サーバ側で下記ファイルを編集
$ sudo vi /etc/ssh/sshd_config

# 編集内容
ChallengeResponseAuthentication no
PasswordAuthentication no


# 編集後にsshdをリスタートする(Ubuntuの場合)
$ sudo /etc/init.d/ssh restart

参考情報

参考にさせていただきました。
ありがとうございました!!
公開鍵認証によるSSH接続 - Macターミナルの使い方 - Linux入門 - Webkaru
ssh認証のための公開鍵と秘密鍵を生成する手順 【Mac】 | かわたま.net
Linux - ssh公開鍵認証設定まとめ - Qiita