我正在尝试在 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
!