我可以通过 SSH 访问一个盒子,并且我想将一些文件传输到另一台机器,但这些文件只能在另一个帐户下访问
如果我ssh
用 1,那么sudo
2 我可以浏览它们。
我实际上想要的是一面镜子,可以将它们复制到我的基于 Windows 的 PC 上
如果只有 SSH 可用,我怎么能做到这一点?
我可以通过 SSH 访问一个盒子,并且我想将一些文件传输到另一台机器,但这些文件只能在另一个帐户下访问
如果我ssh
用 1,那么sudo
2 我可以浏览它们。
我实际上想要的是一面镜子,可以将它们复制到我的基于 Windows 的 PC 上
如果只有 SSH 可用,我怎么能做到这一点?
您可以使用 tar to 和管道之类的东西来执行此操作(只要您在两台主机上都有 tar 可用)。例如,要将 root 的 homedir 复制到另一个主机:
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,STDOUT 将通过 ssh 将其传送到远程主机上运行的命令中。您也可以使用 cpio 和转储/恢复来执行此操作。
你可以,使用 scp. 它是这样完成的:
scp 由 ssh 在 openssh-client 包中提供
有关详细信息,请键入“man scp”。
我假设您没有其他用户帐户的密码,也没有 root 帐户的密码,和/或远程主机不允许通过 SSH 直接 root 登录。
如果不是太多数据,我会事先通过 SSH 登录,成为 root,创建数据的 tarball,为您的普通用户授予对 tarball 的访问权限,然后以普通用户的身份下载 tarball。
您可以在您的 Windows 机器上安装 winscp,以通过 ssh 从您的 Ubuntu 机器中提取文件。http://winscp.net
他们的网站上有关于登录后向其他用户发送的说明:http ://winscp.net/eng/docs/faq_su