Skip to content
Htkyama Blog

ed25519の公開鍵認証でパスワードなしでssh接続をする

ssh, macOS1 min read

sshで毎回パスワードを入力するのが煩わしいので、パスワードなしでログインできる公開鍵認証を設定。

ed25519の公開鍵と秘密鍵の生成

ssh-keygenコマンドで公開鍵と秘密鍵のペアを生成。

意識の高い人は、鍵形式にed25519を使う。 RSAはさすがにもう使うべきではないだろう。

-tオプションにed25519を入れると、ed25519の鍵が出来上がる。

鍵の保存場所やパスフレーズなどの入力を求められるが、何も入力せずにreturnでOK。

$ ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/user/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

パスフレーズを設定してもいいが、設定するとsshの接続の度にパスフレーズを求められてしまう。 ちなみに、macOSだとキーチェーンでパスフレーズを覚えていてくれるので、設定しても毎回入力しなくても済む。

公開鍵、秘密鍵が生成されていることを確認。

$ ls .ssh/id_ed25519*
.ssh/id_ed25519 .ssh/id_ed25519.pub

pubのついたid_ed25519.pubが公開鍵。

公開鍵を接続先に登録

生成された公開鍵id_ed25519.pubを接続先のホストに登録する。

接続先のユーザ名がuser、ホスト名がhostの場合

$ ssh-copy-id user@host

または、

$ cat ~/.ssh/id_ed25519.pub | ssh user@host 'cat >> .ssh/authorized_keys'

で、リモートホスト側のauthorized_keysに公開鍵の情報が登録される。

再度sshでログインしてみて、パスワードを求められなければ成功。

パスワードなしで接続するsshd_configの設定

パスワード認証を無効にする場合、sshd_configに以下を設定。

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes

PAMが有効のまま、チャレンジレスポンス認証が有効になっていると、PAMのパスワード認証が働くので注意。

修正後、sshdを再起動。

iPad/iPhoneからのssh接続

iPad/iPhoneでssh接続するアプリでは、Termiusが秀逸。 無料の機能でもed25519の公開鍵認証が使える。

  • Termius
  • iPadからssh接続をする
© 2023 All rights reserved.
RSS