• ベストアンサー

sshの認証鍵の作成はホストかクライアントか?

sshで接続する際に公開認証鍵を使用する場合の認証鍵はホストとクライアントのどちらで作成するべきでしょうか? ネットでいろいろ参照すると、ホストで作成する場合とクライアントで作成する場合の両方が紹介されています。 teratermなどのクライアントで複数のLinuxのホストに接続する場合、 クライアントで作成して、同じ公開鍵を各Linuxのホストに配布したほうが、シンプルだと考えます。 ホストで鍵を作成したほうが、セキュリティ上、好ましい理由などがあれば、教えて頂きたく、質問させて頂きました。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

ホストで公開鍵&秘密鍵を作成する。 =>秘密鍵をクライアントに転送する必要がある。 ・遠隔にあるホストから安全に秘密鍵を転送する手段は??? ・ホストから秘密鍵を削除し忘れたら??? ・ファイル復元などで削除済みの秘密鍵を復元されたら??? ・クライアント側の秘密鍵の形式が異なっていたら???(PuTTYとか) # 削除し忘れや、復元されて秘密鍵を奪われても、一応はパスフレーズで保護されていますけどね。 # ただし、クラックする側の手元に秘密鍵があれば総当たりなどによってパスフレーズを探すことは不可能ではありません。(現実的かどうかは別ですが…秘密鍵自体がなければ総当たりすらできません) クライアント側で公開鍵&秘密鍵を作成する。 =>公開鍵をホスト側に転送する必要がある。 ・公開鍵なので途中で盗聴されていてもとりあえず問題はない。(telnetでターミナル操作でペーストするとか、FTPで転送する…とか) ・対応する秘密鍵は痕跡すらホスト側には残らない。 ・公開鍵/秘密鍵の形式がホスト側と異なっている場合は、クライアント側で公開鍵の変換が可能。(になっているハズ) ということで、クライアント側でやった方がいい。という風に考えますね。私なら。 1つの秘密鍵で複数のホストに…という質問者さんが書かれている例もありますし。 ネット上での説明でホスト側で作成している。 という例の場合は、クライアント側のソフトが確定できない。というのもあるでしょう。 # クライアントがWindowsだったりLinuxだったりMacだったり…スマホだったりするでしょうし。 # それぞれのパターンでの作り方の説明を書くのは嫌だったのでしょう。(マイナーなツールもあるかも知れませんし。)

chinamini3
質問者

お礼

ありがとうございます。 やはりクライアントで鍵を作成したほうがいいということですね。 公開鍵は盗まれても問題ないということなどが腑に落ちました。 リスクごとに吟味することが大切なんですね。 勉強になりました。

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.2

理想を言えばクライアント側で鍵を作るほうが良いのではないでしょうか。 秘密鍵は可能な限り外部に出さない方が安全です。 サーバ側で作成して放置してしまって、不正アクセス等で秘密鍵を取られたら好き勝手にアクセスされてしまいますし、サーバからクライアントへ秘密鍵を移動させる際の安全確保という点でもインターネット上を通って来るのであれば暗号化等の対策を施さなければいけません。

chinamini3
質問者

お礼

ありがとうございます。 秘密鍵は絶対安全確保することが大切なんですね。

関連するQ&A