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の場合)

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

リモートのホストにid_ed25519.pubをコピーしてから、ssh-copy-idコマンドでauthorized_keysに登録する方法もある。

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

パスワード認証の無効化

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

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes

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

修正後、sshdを再起動。

iPad/iPhoneからのssh接続

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

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