SFTP 密钥认证在 Bash 脚本中不起作用

SFTP 密钥认证在 Bash 脚本中不起作用

我正在尝试在 Ubuntu 上设置一个非常简单的 bash 脚本,该脚本使用公钥身份验证通过 SFTP 传输到特定服务器。当我直接在命令行上运行该命令时,它运行起来非常顺畅:

debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/xxx/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 279

当我将相同的命令放入 bash 脚本并运行该脚本时,公钥不被接受并且进入下一步身份验证。

debug1: Offering RSA public key: /home/xxx/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: password,publickey,keyboard-interactive

我尝试运行的命令非常简单,没什么特别的:

sftp -vvv [email protected]

知道是什么原因造成的吗?

答案1

尝试使用 -oIdentityFile=/path/to/id_rsa 参数明确指定私钥文件的路径

例子 :

sftp -oBatchMode=no -oIdentityFile=/home/username/.ssh/id_rsa -b - [email protected] << !
   cd /directory
   put filename.txt
   bye
!

相关内容