SCP 作为不同用户

SCP 作为不同用户

我想知道是否可以选择 scp 作为不同的用户(而不是连接到远程服务器的用户)。例如,如果用户 A 拥有服务器 X 的 kerberos 票证,并且用户 A 对用户 B 具有 sudo 访问权限。是否可以以用户 B 的身份将文件 scp 到远程服务器 X?任何帮助表示赞赏。

答案1

理论上可以使用-S转变具有如下构造:

scp -S "script.sh" /local/file [email protected]:/remote/file 

script.sh执行的地方ssh将是它获得的所有参数,除了它前缀scpsudo.仅当您确保sudo不提示输入密码时,它才会起作用。我当前关于超级用户的悬而未决的问题实际上是什么:
允许使用 SSH 在 Linux 上以 root 身份自动执行命令


另一种选择,如果远程服务器上的“用户 B”允许本地主机连接,则可以使用-J(跳转)开关(自 OpenSSH 8.0 起支持)例如:

scp -J [email protected] /local/file userB@localhost:/remote/file 

对于旧版本(但至少 7.3),您可以使用ProxyJump指示:

scp -o [email protected] /local/file userB@localhost:/remote/file 

还有其他选项,例如ProxyCommand端口转发,您甚至可以在旧版本的 OpenSSH 上使用它们。这些内容涵盖在OpenSSH 支持多跳登录吗?

相关内容