再起動の間にコンピュータにSSHキーパスワードを覚えさせるにはどうすればよいですか?

再起動の間にコンピュータにSSHキーパスワードを覚えさせるにはどうすればよいですか?

などをssh-agent使用して、SSHキーパスワードをキャッシュするためのさまざまなソリューションを見つけましたkeychaingpg-agentそれらはすべてログインまたはセッションごとにキャッシュするように見えるため、コンピュータを再起動するたびにSSHパスワードを再入力する必要があります(ただし、後続のSSHは再起動するまでSSHパスワードを要求しません)。

再起動時にキャッシュを消去したくありません。パスワードを一度入力したいです。いいえコンピュータの電源を切ってもまた聞いてください。どうすればいいですか?

必要に応じてManjaroを使用します。

答え1

私は@terdonに同意します。コンピュータにパスワードを記憶させるのは、パスワードがないと同じです。

しかし、他のオプションがあります。ログイン時にパスワードの代わりにsshパスワードフレーズを使用するようにPAMを設定します。これにより、パスワードを入力するだけで便利です。

さらに:複数ラウンドの暗号化を使用するようにSSHを設定すると、鍵の復号化に約1秒かかり、パスワードが短く安全になります。入力しやすく、覚えやすく、推測しにくい良いパスワードを使用してください。

答え2

これGNOMEキーホルダーSSHパスワードを保存でき、SSHエージェントとして機能。このコンポーネントでsshgnome-keyringを実行していることを確認してください。環境変数はSSH_AUTH_SOCKssh-agentではなくgnome-keyringを指す必要があります。キーリングにはSSHキーが含まれているため、キーリングから始める必要はありません~/.ssh。キーリングは永続的なので、キーを追加すると再起動後も保持されます。 Gnomeキーリングのロックが解除されると、SSHキーを含むすべてのコンテンツをアプリケーションで使用できます。

答え3

同時に、この問題が発生しました。この同様の質問存在するUbuntuに尋ねる、そこに投稿した修正がここにも適用される場合があります。 (私は - から来ましたここ.)

最も重要なのは、この修正はSeahorse(パスワードとキーとも呼ばれる)、GNOME Keyringを使用するGUIフロントエンドにのみ適用されることです。 SeahorseはUbuntuや他のLinuxディストリビューションでデフォルトで有効になっています。 Seahorseを使用している場合は、コマンドライン実行ファイルを呼び出すと、特定のssh-askpassSSHキーのパスワードを求めるメッセージが表示され、そのパスワードをGNOME Keyringに保存できます。 (macOSにも同様のプロセスがありますが、以下ではSeahorseのプロセスについて説明します。)

編集:さらに重要なのは、Seahorse GUIに移動してOpenSSHキーをクリックし、問題のキーを右クリックして[Secure Shell用のキーの設定...]を選択し、各サーバーとユーザー名を追加することです。鍵の鍵を使用してください。今日早く(走る前に)この仕事をしましたが、ssh-askpass完全に忘れてしまいました。奇妙なことに、このプロセスの一部ではパスワードの入力を求められないようです。

SeahorseでSSHキーのパスワードを保存するには、次のコマンドを使用します。

$ <seahorse_ssh-askpass> <key_path>

Seahorse関連のファイルを使用したい場合は、ssh-askpassすべてのシステムで同じ場所にいない可能性がありますが、私の場合(Ubuntu 20.10)は次のようになります。

$ /usr/libexec/seahorse/ssh-askpass <key_path>

この実行可能ファイルの場所がシステムで機能しない場合は、次のことを試すことができます。

$ locate ssh-askpass | grep seahorse

ssh-askpass名前とパスseahorseに含まれるすべてのファイルとディレクトリが一覧表示されます。 (インストールして設定する必要があります。mlocateシステムでこのコマンドを実行する前に。 )

SSHキーの最も一般的なパスはですが、~/.ssh/id_rsaSeahorse GUIをチェックして他のパスであることを確認できます。私の場合は、次のコマンドを使用しました。

$ /usr/libexec/seahorse/ssh-askpass ~/.ssh/alpha_rsa

コマンドが正常に実行されると、SSH キー名をリストし、パスワードの入力を求めるダイアログボックスが表示されます。私の場合ワラエラーキーボードをキャッチできないと言って、私が入力したパスワードは端末に印刷されますが、このコマンドは私のGNOMEキーリングがロック解除されたときに特定のSSHキーを自動的にロック解除することに成功したようです。

しかし、これが明らかなセキュリティホールになることを望まない場合は、コンピュータの電源を入れたときにパスワードなしでGNOMEキーリングが自動的にロック解除されないようにすることをお勧めします。私の場合、Linuxの起動前に入力する必要があるパスワードを含むYubiKeyがあります。また、使用していないときにコンピュータが自動的にロックされることを確認したいと思います。ただし、コンピュータを起動またはログインし、ロック解除(つまり、スリープモードで覚醒)するためにパスワードを入力する必要があると仮定すると、GNOMEキーリングに保存されているすべてのSSHパスワードは、GNOMEキーリングの他のパスワードと同じくらい安全でなければなりません。

macOSを使用している場合は、同様のプロセスを使用して、ユーザーのログインパスワードで暗号化されたmacOSキーチェーンにSSHキーパスワードを保存できます。

端末でSSHキーを設定したと仮定すると、端末に次のように入力して~/.sshSSHファイルを編集できます。config

% nano ~/.ssh/config

ファイルの上部に次を貼り付けます。

Host *
  AddKeysToAgent yes
  UseKeychain yes

SSHファイルでより多くのことを行うことができますが、configこの特定の構成は次のようになりました。Derik Ramirezによるこのブログ投稿。 (AddKeysToAgentmacOS以外のプラットフォームでは使用できますが、動作UseKeyChainしません。)

SSHを保存するにはcontrol-oと入力し、終了してシェルプロンプトに戻るにはconfigcontrol-xと入力します。新しいSSHをすぐにnano使用できる必要があり、config次にSSHキーパスワードを入力するときは、そのパスワードをログインキーチェーンに保存する必要があります(したがって、後で再入力する必要はありません)。

関連情報