如何设置 ssh-agent 在关闭远程连接后保留密钥以供 cron 作业使用?

如何设置 ssh-agent 在关闭远程连接后保留密钥以供 cron 作业使用?

我有几个 cron 作业需要受密码保护的 ssh 密钥。这些作业每天早上运行,但总是失败,因为代理在与远程服务器断开连接后没有保持密钥有效。这是我继承的服务器,以前保留了密钥,但在最近的更新和重启后,它们不再保留。

我尝试运行 ssh-agent 并在之后添加密钥

eval `ssh-agent -s`

有一个 .config/systemd/user/ssh-agent.service 在登录时启动代理,然后我手动添加密钥,但断开连接后密钥不会保留。

[Unit]
Description=SSH key agent

[Service]
Type=simple
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK

[Install]
WantedBy=default.target

$SSH_AUTH_SOCK 在 .bashrc 中通过以下方式设置

export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent.socket

断开连接后,将这些密钥保存在 ssh-agent 中以供 cron 作业使用的最佳方法是什么?

Linux 版本:

NAME="Red Hat Enterprise Linux"
VERSION="8.7 (Ootpa)"
ID="rhel"
ID_LIKE="fedora"
VERSION_ID="8.7"
PRETTY_NAME="Red Hat Enterprise Linux 8.7 (Ootpa)"
REDHAT_BUGZILLA_PRODUCT="Red Hat Enterprise Linux 8"
REDHAT_BUGZILLA_PRODUCT_VERSION=8.7
REDHAT_SUPPORT_PRODUCT="Red Hat Enterprise Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.7"

相关内容