我正在尝试创建一个 Linux 脚本,可以调用该脚本来使用具有关联密码的 pem 密钥自动 sftp 到外部服务器?
据我所知,大概是这样的:
sftp -i rsa_private.pem -p rsa_private_passphrase 用户名@ip_地址
但显然这是传递 sftp 帐户的假定密码,而不是 pem 密钥...我对 Linux 脚本编写相对缺乏经验,因此非常感谢任何帮助!
尝试这个棘手的解决方案: 如何通过环境变量传递 ssh 密钥密码
基本上,您必须遵循以下步骤: 首先安装 ssh-agent
创建包含密码短语的 shell 脚本askpass.sh
#!/usr/bin/env bash
echo "${0}:${@} : this is for debugging to see if the echo script runs" 1>&2
echo "THEPASSPHRASE"
从您的 sftp 脚本中,启动 ssh-agent 并启动帮助程序脚本
#start the agent
eval $(ssh-agent)
#add your privatekey with ssh-add and the helper script
DISPLAY=":0.0" SSH_ASKPASS="/scripts/askpass.sh" setsid ssh-add /scripts/priv.key </dev/null
#start your sftp session with the privatekey
sftp -v -i /scripts/priv.key [email protected]