通过 ssh 连接到 IPv6 主机

通过 ssh 连接到 IPv6 主机

我想使用远程主机的 IPv6 地址将 tar 传输到远程主机。我可以通过 ssh 和 scp 连接到主机,但 GNU tar 不接受 IPv6 地址。

我试过:

tar -cjvf root@2001:DB8::1234:5678:/backup.tar.bz2 *

tar -cjvf root@[2001:DB8::1234:5678]:/backup.tar.bz2 *

tar -cjvf root@\[2001:DB8::1234:5678\]:/backup.tar.bz2 *

但这些都不起作用。所有这些都给出来自 tar 的地址错误。我的 Ubuntu 系统的 tar 版本是 1.25-3。

答案1

由于它通过 SSH 工作,因此您可以使用:

tar cjvf - /folder/to/backup | ssh root@ipv6 "cat > data.tar.bz2"

答案2

我认为您赋予了 tar 实际没有的权力。tar我立即访问的任何版本都没有表明该-f标志采用远程用户/机器对作为参数。

你能说说为什么你认为这会有效吗?

答案3

我找到了答案(实际上在提问之前已经有了答案,但我认为这会对其他人有所帮助,而且我确实学到了一些东西)。将 tar 和 ssh 分成两个不同的步骤是可行的。

tar cvjf - * | ssh root@2001:DB8::1234:5678 "dd of=/backup/backup.tar.bz2"

注意:我尝试使用 cat 而不是 dd,但 cat 对我来说不起作用 - tar 给出了写入错误。如果我使用 ssh 密钥验证而不是密码,它可能会起作用。

参考:

http://www.astrouw.edu.pl/~jskowron/tar-ssh/

http://www.cyberciti.biz/faq/howto-use-tar-command-through-network-over-ssh-session/

相关内容