背景
エンタープライズジョブのスケジュールに使用されるJenkinsサーバーがあります。次のシェルスクリプトを実行するタスクがあります
#!/bin/bash -xe
ssh -o ServerAliveInterval=10 insidetk@albrl1 "Rscript /home/insidetk/PRIORITIZATION/Analytics_Modal.R"
ご覧のとおり、sshコマンドはIdentityFileを指定しません。そのため、Known_hostファイルに保存されているキーを使用する必要があると推測しました。
スクリプトを実行するボックスで、$HOME/.ssh/known_host
ファイル/etc/ssh/ssh_known_hosts
にキーがあることがわかります。しかし、これらのファイルには、文字通り数千のさまざまなタスクからインポートされた数千のキーがあります。
努力する
上記のファイルからユーザーを検索しようとしています。内部知識、ボックスのIPアドレス、ボックスのホスト名などを検索して、このファイル内のキーを見つけようとします。ただし、これらの文字列はこれらのファイルには表示されません。
SSHログはどこにも見つからず、Journalctlがインストールされていません。
質問
このsshコマンドで使用されるキーをどのように識別できますか?
ベストアンサー1
ssh
以下を対話的に実行して詳細な出力を有効にできます。
ssh -v insidetk@albrl1
そうすれば、次のような線を見つけることができます。
debug1: Offering public key: /home/<user>/.ssh/id_rsa RSA SHA256:<key's fingerprint>
debug1: Server accepts key: /home/<user>/.ssh/id_rsa RSA SHA256:<key's fingerprint>