質問: ssh鍵を保管する方法 つい最近、パスワードの代わりにsshキーを使い始めました(もちろん、githubのおかげで)ので、この概念全体についてはかなり新しいことに注意してください。現在私の鍵は単に〜/ .sshの下にありますが、これが良い習慣かどうかはわかりません。例えば。もし私が複数のマシンを持っているなら、私は私の秘密鍵を複製する必要があるだろう、それは私が望ましくないと思う。あるいは、もし私のhddがkaputになったら、私はそれらのキーを失うでしょう、そしてそれは(私が推測する)同様に望ましくないです。では、ssh鍵を安全に、便利に、そして確実に保存するためのベストプラクティスは何でしょうか。スマートカードを使うようなオプションがあるようです( gpg/sshキーを保存するためのスマートカード(linux) - 何が必要ですか? )、これが一番良い方法ですか?更新:問題の理由は、多くのサービス(github、aws ec2など)がサービスを使用するためのsshキーの設定方法に関するガイドを提供しているが、バックグラウンドがほとんどない(すでにキーが生成されている場合など) ssh-keygen [1]によって、推奨されるセキュリティ対策は何ですか?)そして、その情報が実際には重要ではないのか、それとも「デフォルトで」知っていると思われるのかは不明です。この時点までの答えをまとめると(ただし、それらを読んでください。追加するものがある場合は、どうしてください):この場合は、そのままにしても大丈夫です。あなたが他の人からそれらを守る限り、秘密鍵は〜/ .sshで。ただし、キーを紛失した場合は、サービスにアクセスして新しいキーをアップロードまたは生成する別の方法があることを確認してください(通常これが当てはまります)。[1] githubはかつて複数のキーを管理する方法について ヘルプを提供していました 。
回答: あなたのsshキーは暗号化されたパーティション内の別のディレクトリに保存することができます。それから-iでそのディレクトリを指すsshを使うことができます:ssh -i identity_file me@example.com 詳しい説明(man ssh): -i identity_file 公開鍵認証用のid(秘密鍵)を読み取るファイルを選択します。デフォルトは、プロトコルバージョン1の場合は〜/ .ssh/identity、プロトコルバージョン2の場合は〜/ .ssh/id_dsa、〜/ .ssh/id_ecdsa、〜/ .ssh/id_ed25519、および〜/ .ssh/id_rsaです。設定ファイルにはホストごとに指定することもできます。 複数の-iオプション(および構成ファイルで指定された複数の識別情報)を持つことは可能です。 certificatefileディレクティブで証明書が明示的に指定されていない場合、sshは-cert.pubをidentity filenamesに追加することによって取得されたファイル名から証明書情報をロードしようとします。 セキュリティに対する私のアプローチは、私が情報を個人用と一般用に分けることです。ホームパーティション全体を暗号化したくないので、秘密ファイル(~/.ssh内のファイルなど)を暗号化パーティションにコピーします。マルウェアは〜/ .sshに何も見つけられず、おそらくその場所を見つけるためにシステム全体やシェルプロファイルをスキャンしないので、これはかなり効率的なセキュリティを与えると思います。-f configfile 設定ファイルへのパスを設定します。p.s私はエイリアスalias ssh='ssh -i ... -f ...'を作成し、それをあなたのプロフィールに入れます。p.p.s.私はまだこれをチェックしていません、そして私は他のプログラム(gitのような)がこれらのssh設定でどのように動作するかわかりません。