我想知道是否可以选择 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
将是它获得的所有参数,除了它前缀scp
为sudo
.仅当您确保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 支持多跳登录吗?。