
私はここで完全に迷子になりました。
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
で呼び出された公開鍵に基づいて正しい秘密鍵を選択します。
答え2
openSSH クライアントでは動作しません。 Windowsスタイルをナビゲートしてキーファイルを選択するPuTTyやKiTTyなどのGUIアプリケーションで使用するように設計されています。
アプリを切り替えたい場合は、インストールすることもできます。Linux用PuTTy。これは同じように機能するはずです。クイック検索で見つかったすべての利用可能な手順はWindowsを参照しているので、知っている唯一の方法はテストすることです。