SSH キーペア作成

tux logo Linux

 

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

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

僕もLGTMしました。

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

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

 

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

 

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

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

 

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

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

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

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

 

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

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

 

DreamWeaverでもSFTPできるSSHキーペア作成(OpenSSLのPEM形式)

オプション無しで作成すると、DreamWeaverでSFTP接続できなかった。

スクショ取り忘れたが、DreamWeaverからエラーのポップアップが表示され、その内容は、

  • FTPへの接続失敗
  • IDかPASSWORDが間違っている

というものだった。

 

DreamweaverによるSFTPでの秘密鍵について | BuiltFunc
DreamweaverによるSFTPでの秘密鍵についてDreamweaverによるSFTPでの秘密鍵でのログインをしようとしたところ、ログインできないという事案が発生しました。 数時間ほど悩み解決いたしましたので、情報公

こちらに書かれていることで対処できた(助かりました)

 

実際には「OpenSSLのPEM形式」でのキーファイルがサポート対象なようです。

以下のコマンドで作成する。

ssh-keygen -t rsa -m PEM

UbuntuからのSSH接続も上記で作成したキーペアで接続できることを確認した。

 

オプション無しSSHキーペア作成(OpenSSH形式)

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-copy-id hoge@exmple.com -i 公開鍵

-i オプション・・・公開鍵を指定する

参考:@it

 

ちなみに、

ssh-copy-idはSSHでのパスワードログインができる状況でないとできないらしー。

SSHでのパスワードログインを許可していない場合は、

  • 一時的にパスワードログインを有効にするか、
  • ssh-copy-idでやるのは諦めて、先述のやり方(authorized_keysに追記する)

でやる。

 

個人的には安全を取るなら(既にauthorized_keysが在る場合、上書きしないという意味で) cat ~ >> を使うより、

vim authorized_keys

などエディタで開いてから末尾に追記するのが良いと思う。何回もやる作業じゃないし。

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

ローカル端末の

~/.ssh/.

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

パーミッションは600で。

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

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

 

 

 

 

コメント

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