sudo 之后如何通过 ssh 传输文件?

sudo 之后如何通过 ssh 传输文件?

我可以通过 SSH 访问一个盒子,我想将一些文件传输到另一台机器,但这些文件只能在另一个帐户下访问

如果我ssh有了 1,那么sudo2 我就可以浏览它们。

我实际上想要的是一个镜像,以便将它们复制到我的 Windows PC 上

如果只有 SSH 可用,我该如何实现?

答案1

您可以使用 tar 和管道之类的东西来执行此操作(只要两台主机上都有 tar)。例如,要将 root 的主目录复制到另一台主机:

sudo tar c -C / root | ssh remote_host tar xv -C some/location/to/unpack/into

(假设 gnu tar 支持 -C,则可以不使用‘()’来完成,但这比较棘手)当然,您可以在远程端执行 sudo:

tar c -C my_trojan_files . | ssh remote_host sudo tar xv -C /usr/bin

这里的诀窍是,在这两种情况下,tar 都会将存档发送到 STDOUT,然后通过 ssh 将其传送到远程主机上运行的命令中。您也可以使用 cpio 和 dump/restore 执行此操作。

答案2

你可以使用 scp。操作如下:

scp <file to transfer> user@server:/place/to/put/file

scp 由 openssh-client 包中的 ssh 提供

要了解更多信息,请输入“man scp”。

答案3

我假设您没有其他用户帐户的密码,也没有 root 帐户的密码,并且/或者远程主机不允许通过 SSH 直接登录 root。

如果数据不是太多,我会事先通过 SSH 登录,成为 root 用户,创建数据的 tarball,授予普通用户对该 tarball 的访问权限,然后以普通用户身份下载该 tarball。

答案4

您可以在 Windows 机器上安装 winscp,以通过 ssh 从 Ubuntu 机器中提取文件。http://winscp.net

他们的网站上有关于登录后转到另一个用户的说明:http://winscp.net/eng/docs/faq_su

相关内容