在 bash 中运行 ssh-add,并使用密钥和密码作为参数

在 bash 中运行 ssh-add,并使用密钥和密码作为参数

我正在努力奔跑ssh 添加通过 Alma9 服务器上的 bash 脚本进行限制。RSA 密钥 4096 位于 SMB 共享上,因此文件的权限已损坏,并且密钥受密码保护。
由于该文件来自 Windows 共享,因此我无法直接更改权限。因此ssh 添加不会允许的。

我尝试了一些方法来解决这个问题,我发现了一些有用的页面。 https://stackoverflow.com/questions/46253162/add-ssh-key-from-variable

这有帮助,但我需要添加密码

所以就像

ssh-add - <<< "${SSH_PRIVATE_KEY}" < add ${PASS}

expect我曾尝试在脚本中使用:https://stackoverflow.com/questions/4780893/use-expect-in-a-bash-script-to-provide-a-password-to-an-ssh-command

但答案如下:

eval(`ssh-agent`)

/usr/bin/expect
spawn ssh-add
expect "Enter passphrase for /root/.ssh/id_rsa:"
send "my_pass"
interact

但我需要将密钥输入ssh 添加并在需要时添加密码。

要么我被打倒,<<<要么引用

我也尝试过这个:https://unix.stackexchange.com/questions/571741/how-to-pass-a-passphrase-to-ssh-add-without-triggering-a-prompt

{ sleep .1; echo PASS; } | script -q /dev/null -c 'ssh-add - <<< "${SSH_PRIVATE_KEY}"'

这就是引用出现问题的地方。

这很令人沮丧,因为我可以让 A 和 B 或 B 和 C 部分工作,但我需要 A 和 B 和 C,这样我才能输入密钥和密码ssh-add,然后才能使用ssh-agent共享密钥。

所以我正在寻求帮助。我一直在关注许多网站,希望找到一个有用的解决方案。

谢谢 R。

相关内容