そもそも、SSHの接続は公開鍵方式の方がいいのか?パスワード方式でいいのか?
これについてはQiitaにLGTMが多くつけられたわかりやすい記事がありました。
僕もLGTMしました。

結論から言えば、公開鍵認証の方が良いと言って差し支えないと思います。
つまり公開鍵認証最大のメリットは、パスワード認証に使うパスワードと違って同一の鍵を各所に使い回すことにリスクがほぼないことです。
使いまわしたところで、サーバから公開鍵が漏洩しても、無問題と。
- サーバから公開鍵が漏洩・・・・・秘密鍵が漏洩してないので他のサーバに影響なし
- サーバからパスワードが漏洩・・・パスワードがあれば他のサーバにログインできてしまう
また、パスワードの場合、使いまわしでなくとも、
- 単純なパスワード
- 推測しやすい
- 英数記号大文字小文字がなく、例えば数字だけとか
みたいなものにしてもアカンよ、と。
公開鍵方式にできない場合は、複雑なものにすべきですね。
量子コンピュータが一般化されたら速攻で暴かれると思いますが、2022年現在ではまだ気にしなくて良さそうです。
SSHのキーペア(秘密鍵と公開鍵)を作成する
ssh-keygenコマンドを使う。

オプションなしで
$ ssh-keygen
コマンドを実行した場合、
最初に
Enter file in which to save the key (/home/username/.ssh/id_rsa):
みたく出てくるが、このまま空Enterすると、
/home/username/.ssh/id_rsa
というファイルが秘密鍵になる。
別のファイル名をここで指定したい場合は、フルパスで指定する。
そうすると、公開鍵もそれに合わせた名前で作成される。
別に秘密鍵のファイル名は、ファイルが出来上がった後でファイル名を後でリネームしても良かった。はず。多分。気がする。
キーペアの設置
サーバに公開鍵を設置
サーバで作った場合
$ cat 公開鍵 >> ~./ssh/authorized_keys
する。↓
authorized_keysのパーミッションを600に変える。
600に変えないとSSHログインができない事象が発生する。
$ chmod 600 ~/.ssh/authorized_keys
ローカル端末で作った場合
サーバに設置する。

ssh-copy-id コマンドを使う。
ローカル端末に秘密鍵を設置
ローカル端末の
~/.ssh/.
あたりに作成した秘密鍵を設置する。
パーミッションは600で。
サーバで作成していた場合は、
scpコマンド(非推奨コマンドだけど)などで取得する。
コメント