SSH キーペア作成

tux logo Linux

 

そもそも、SSHの接続は公開鍵方式の方がいいのか?パスワード方式でいいのか?

これについてはQiitaにLGTMが多くつけられたわかりやすい記事がありました。

僕もLGTMしました。

SSHの公開鍵認証における良くある誤解の話 - Qiita
はじめに 背景 これを知っていたからと言って何かの役に立つかというと、そうでない人の方が多いとは思うのですが、いい加減、SSHの公開鍵認証の説明がデマばかりなので、少しはちゃんとした説明もあった方が良いかもな、ということで記...

結論から言えば、公開鍵認証の方が良いと言って差し支えないと思います。

 

つまり公開鍵認証最大のメリットは、パスワード認証に使うパスワードと違って同一の鍵を各所に使い回すことにリスクがほぼないことです。

 

使いまわしたところで、サーバから公開鍵が漏洩しても、無問題と。

  • サーバから公開鍵が漏洩・・・・・秘密鍵が漏洩してないので他のサーバに影響なし
  • サーバからパスワードが漏洩・・・パスワードがあれば他のサーバにログインできてしまう

 

また、パスワードの場合、使いまわしでなくとも、

  • 単純なパスワード
    • 推測しやすい
    • 英数記号大文字小文字がなく、例えば数字だけとか

みたいなものにしてもアカンよ、と。

公開鍵方式にできない場合は、複雑なものにすべきですね。

 

量子コンピュータが一般化されたら速攻で暴かれると思いますが、2022年現在ではまだ気にしなくて良さそうです。

SSHのキーペア(秘密鍵と公開鍵)を作成する

ssh-keygenコマンドを使う。

【 ssh-keygen 】コマンド――SSHの公開鍵と秘密鍵を作成する
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、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で公開鍵を渡す - Qiita
鍵認証による ssh を行おうとすると ssh する元のサーバで公開鍵を生成してそれを ssh 先のサーバに持って行って.ssh/authorized_keysに追記しないといけない。めんどくさいなぁと思っていたんだが、ssh-cop...

ssh-copy-id コマンドを使う。

 

ローカル端末に秘密鍵を設置

ローカル端末の

~/.ssh/.

あたりに作成した秘密鍵を設置する。

パーミッションは600で。

サーバで作成していた場合は、

scpコマンド(非推奨コマンドだけど)などで取得する。

 

 

 

 

コメント

タイトルとURLをコピーしました