使用 sudo 作为不同用户和无密码连接的 SFTP

使用 sudo 作为不同用户和无密码连接的 SFTP

我有一个以本地用户身份运行的批处理作业。我需要将 sftp 文件作为同一作业的一部分,但使用 sudo 作为不同的 AD 用户。

为此,已在源服务器上设置 AD 用户,并在 sudoers 文件中执行以下配置,以使 ADMINSUDO 组中的任何用户能够执行 scp/sftp

Cmnd_Alias TSTSFTP = /usr/bin/scp, /usr/bin/sftp
%ADMINSUDO ALL=(AD_User) NOPASSWD:SETENV:TSTSFTP

当我执行时

sudo -u AD_User /usr/bin/sftp

我收到以下错误,表明 sudo 成功,但有人可以帮助解决 sftp 问题吗?

usage: sftp [-1246aCfpqrv] [-B buffer_size] [-b batchfile] [-c cipher]
          [-D sftp_server_path] [-F ssh_config] [-i identity_file] [-l limit]
          [-o ssh_option] [-P port] [-R num_requests] [-S program]
          [-s subsystem | sftp_server] host
       sftp [user@]host[:file ...]
       sftp [user@]host[:dir[/]]
       sftp -b batchfile [user@]host

答案1

host 是 sftp 的强制参数

使用

sudo -u AD_User /usr/bin/sftp host

注意

  • AD_user如果发送应该能够读取本地文件,如果接收则应该能够写入
  • host必须接受无密码连接AD_user(我希望这就是您sudo首先使用的原因)

相关内容