- クライアント:Mac
- サーバー: LInux(Ubuntu)
を用いて、公開鍵と秘密鍵の生成から公開鍵暗号でのSSH接続までのまとめです。
公開鍵と秘密鍵の生成
RSA暗号の鍵を生成する場合は、オプションで -t rsa
を入力します。
$ ssh-keygen -t rsa
これで、~/.ssh/
ディレクトリに id_rsa
(秘密鍵)と id_rsa.pub
(公開鍵)が生成されていることがわかるかと思います。
※ SSH秘密鍵のパスフレーズをつけるべきかどうかについては下記記事が参考になりました。
SSH秘密鍵のパスフレーズは(つけるなら)11文字以上にしましょうねという話 - 本当は怖い情報科学
サーバーに公開鍵を渡す
サーバーの .ssh/authorized_keys
に、先ほど作成した 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