背景

背景

背景

我有一个 Jenkins 服务器,用于企业作业调度。我有一份运行以下 shell 脚本的工作

#!/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>

相关内容