Keepass Keeagent SSHキーはbash端末とどのように統合されますか?

Keepass Keeagent SSHキーはbash端末とどのように統合されますか?

私はここで完全に迷子になりました。

SSH秘密鍵(私はそれらの多くを持っています)が私のKeepassデータベースに保存されていることを発見しました。以前は、ssh -iを使用して.sshディレクトリからローカルに秘密鍵ファイルをインポートする簡単なメニューを含むbashスクリプトがありました。ここでの究極の目標は、さまざまなデバイスで利用可能な中央で利用可能なパスワードと秘密鍵データベースを取得することです。

私はすべてのssh秘密鍵をkeepassデータベースに置き、keepass / keeagentをbash端末と統合する方法を見つけようとしています。

しかし、私はkeepassが実際に何をしているのか誤解しているようです。私が望むのは、Keepassデータベースを開き、既存のbashスクリプトを実行し、この方法でSSHセッションを開始できるようにすることです。

私はssh-agentを使用しようとしましたが、実際に私がそこで何をしているのか、どのように機能するのかわかりません。オンラインで見つかったすべての情報は、上記の手順に従うか、端末を使用しないオプションに従います。

それでは、次のコマンドを実行する方法はありますか?ssh -i KEEPASS-DB-PRIVKEY user@ipそれとも、keepass / keeagent / sshagentが何をしているのですか?

私はUbuntu 20.04を使用しており、デスクトップはKDE Plasmaです。 keepass2(2.44)用のkeeagentプラグインをインストールしました。

ベストアンサー1

私は今かなり一貫性があると思います。新しいブーツでテストした結果、うまく機能しました。しかし、大きな警告があります。

まず、keeagent オプションを次のように編集します。

  • エージェントモード:Agent
  • 跡:/home/$USER/.ssh-keeagent.sock

次に、.bashrcに次の行を追加しました。 export SSH_AUTH_SOCK="/home/$USER/.ssh-keeagent.sock"

私はssh-agentが起動時に自動的に起動し(間違いなく間違えた)、opensshのキーを処理すると確信しています。

ここで注目すべき点は、sshがロードするキーについては賢くないことです。したがって、複数のキーをロードしてリストの最後のキーを使用したい場合は、リスト内の他のすべてのキーを最初に試したため、サーバーは最終的にユーザーを拒否します。私の考えでは、これはsshがどのキーがどのIPに関連付けられているかを知る方法がないからだと思います。

おそらくこれは.ssh / configを使用して回避できます。しかし、私はまだ壊れていません。

ただし、キーがロードされるとすぐに端末を開き、何かを入力するとssh user@IP接続されます。 Keepassから、特定のキーがすでに他のアプリケーションで使用されているという小さな通知も受け取りました。

sshがIPに対して特定のキーのみを使用し、実際のキーはKeepassデータベースに保持するアイデアをすでに持っている人がいる場合は聞きたいです。

IdentityFileの下に〜/.ssh/configの公開鍵を使用して問題を解決できたようです。

Host hostname
        Hostname IP
        User user
        IdentityFile ~/.ssh/key.pub
        IdentitiesOnly yes

図に示すように、すべてのキーをロードしてから単にssh-add -lホストを呼び出すと、ホストは設定ssh hostnameで呼び出された公開鍵に基づいて正しい秘密鍵を選択します。

おすすめ記事