ssh-keygen -t ed25519
は、SSH(Secure Shell)用の鍵ペアを生成するコマンドです。このコマンドは、特に ed25519
というタイプの鍵を生成します。これはSSHでの認証に使われるもので、公開鍵認証方式の一つです。
SSHでの鍵認証とパスワード認証の違いについて詳しく:
鍵認証(Key-Based Authentication)
- セキュリティ: 鍵認証はパスワード認証よりも一般的に安全です。秘密鍵はユーザーのマシンにのみ存在し、公開鍵はサーバーに保存されます。
- 便利性: パスワードを入力する必要がないため、ログインが迅速で簡単になります。また、スクリプトや自動化システムにも適しています。
- 管理: 鍵は一度生成してしまえば、それを使って複数のサーバーへのアクセスを管理できます。
- 鍵の生成と使用:
ssh-keygen
コマンドを使用して鍵を生成し、公開鍵をサーバーにコピーします。接続時には秘密鍵が使われます。
パスワード認証(Password Authentication)
- セキュリティ: パスワードが弱い場合や頻繁に変更されない場合、攻撃者による推測や辞書攻撃のリスクがあります。
- 使用のしやすさ: 新しいユーザーや技術に不慣れなユーザーにとって、パスワードの方が直感的で理解しやすい場合があります。
- 管理: パスワードは定期的に変更する必要があり、多くのサーバーを管理する場合は、それぞれで異なるパスワードを使用することが推奨されます。
- 接続プロセス: ユーザー名とパスワードを入力してログインします。
比較
- セキュリティ: 鍵認証の方がセキュリティが高い。
- 便利性: 鍵認証は一度設定すればより便利で、自動化に適しています。
- 設定の複雑さ: 鍵認証は設定がやや複雑ですが、一度設定すれば利便性が高まります。
- 適用シナリオ: 鍵認証は管理者や経験豊富なユーザーに適しており、パスワード認証は初心者や小規模な環境に適しています。
一般に、セキュリティを重視する環境では鍵認証が推奨されます。特に、インターネットに公開されているサーバーでは、鍵認証の使用が強く推奨されます。
ということで小学生になったつもりでやってみよう。
$ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519):
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_ed25519
Your public key has been saved in /home/user/.ssh/id_ed25519.pub
- .pub > 公開鍵
- なにもついていない > 秘密鍵
小学校三年生くらいには成長したと思います。
$ mv id_ed25519.pub authorized_keys
$ chmod 600 authorized_keys
.ssh
についてはdrwx------
だったので700でした。秘密鍵はみなさんお好きな手段でどうにかしてローカルに持っていきましょう。または、ローカルから持っていきましょう。
散々色々なsshクライアントに手を出してきたわたしは、今では Tabby と添い寝するくらい仲良くしています(要は寝落ち
今まで適当に動かしてたサーバーが、ずっとパスワード認証でrootログインOKだったんだけど、さすがにそれはマズいと思って反省してます。ます。もうそんなサーバーはどこにも存在していません。