znapzendzetup 创建命令时出现“主机密钥验证失败”

znapzendzetup 创建命令时出现“主机密钥验证失败”

刚开始使用,在Ubuntu 14.04(源计算机,因为已更新到 Ubuntu 16.04)znapzend上编译良好。目标计算机是 Ubuntu 16.04(“备份服务器”)。我已经使用/设置了一个无密码的 ssh 密钥对。我可以不用密码就正常使用。问题是,由于某种原因似乎无法访问备份服务器。两台机器上的 mbuffer 都处于 状态。这是我在源机器上运行的命令和输出:ssh-keygenssh-copy-id [destination]ssh backupserverznapzend/usr/bin/mbufferznapzendzetup

sudo znapzendzetup create --recursive --mbuffer=/usr/bin/mbuffer --tsformat='%Y-%m-%d-%H%M%S' SRC '1y=>1d' pool/Documents DST '1y=>1d' jon@backupserver:pool/Documents
Host key verification failed.
Host key verification failed.
*** WARNING: executable '/usr/bin/mbuffer' does not exist on jon@backupserver

*** backup plan: pool/Documents ***
dst_0           = jon@backupserver:pool/Documents
dst_0_plan      = 1year=>1day
*** WARNING: destination 'jon@backupserver:pool/Documents' does not exist, will be ignored! ***

enabled         = on
mbuffer         = /usr/bin/mbuffer
mbuffer_size    = 1G
post_znap_cmd   = off
pre_znap_cmd    = off
recursive       = on
src             = pool/Documents
src_plan        = 1year=>1day
tsformat        = %Y-%m-%d-%H%M%S

Do you want to save this backup set [y/N]?

感谢您提供的任何见解!


更新 #1

我得到的是:

Host key verification failed.

或者

Permission denied the ZFS utilities must be run as root.

取决于我是否使用 sudo 运行 znapzendzetup,或者在命令中使用 --sudo:

sudo znapzendzetup create ...

或者

znapzendzetup create --sudo ...

我将这一行添加到 /etc/sudoers(通过 visudo):

jon ALL=(ALL) NOPASSWD:ALL

并在主机和目标机器上执行此行:

sudo zfs allow -u jon create,mount,send,receive,snapshot,destroy pool/Documents

我可以尝试启用无密码 root 登录,但我明白不建议这么做。谢谢您的关注!


更新 #2

我通过更改目标计算机上的 /etc/ssh/sshd_confg 中的以下行来启用通过 ssh 进行的远程 root 登录:

#PermitRootLogin prohibit-password
PermitRootLogin yes

然后,在源机器上:

sudo passwd root
su
ssh-keygen
ssh-copy-id BACKUPSERVER

znapzend 命令现在可以作为 sudo 工作,并且不需要 --sudo 参数!

接下来,我启动了一个 znapzend 命令,输出如下:

jon@FILESERVER:~$ sudo znapzend --debug --runonce=pool/Documents
[Wed Apr 27 17:54:42 2016] [info] znapzend (PID=6388) starting up ...
[Wed Apr 27 17:54:42 2016] [info] refreshing backup plans...
[Wed Apr 27 17:54:42 2016] [info] found a valid backup plan for pool/Documents...
[Wed Apr 27 17:54:42 2016] [info] znapzend (PID=6388) initialized -- resuming normal operations.
[Wed Apr 27 17:54:42 2016] [debug] snapshot worker for pool/Documents spawned (6391)
[Wed Apr 27 17:54:42 2016] [info] creating snapshot on pool/Documents
# zfs snapshot pool/Documents@2016-04-27-175442
[Wed Apr 27 17:54:42 2016] [debug] snapshot worker for pool/Documents done (6391)
[Wed Apr 27 17:54:42 2016] [debug] send/receive worker for pool/Documents spawned (6393)
[Wed Apr 27 17:54:42 2016] [info] starting work on backupSet pool/Documents
# zfs list -H -o name -t snapshot -s creation -d 1 pool/Documents
[Wed Apr 27 17:54:42 2016] [debug] cleaning up snapshots on pool/Documents
# zfs destroy pool/Documents@2016-04-27-174027
[Wed Apr 27 17:54:43 2016] [info] done with backupset pool/Documents in 1 seconds
[Wed Apr 27 17:54:43 2016] [debug] send/receive worker for pool/Documents done (6393)

它似乎已成功运行,但到目前为止,它尚未将数据集备份到目标。它什么时候复制文件?

另外,仅供参考,我添加了 znapzend 作为服务:

sudo cp ~/znapzend-0.15.5/init/znapzend.service /etc/systemd/system
sudo chown root:root /etc/systemd/system/znapzend.service
systemctl enable znapzend.service
sudo systemctl enable znapzend.service
sudo systemctl start znapzend.service
sudo service znapzend status

谢谢!


更新 #3

好的,我现在已经解决了这个问题。我没有在目标机器上设置使用“root”登录的配置,这导致发送/接收无法运行。这是我更新的 znapzendzetup 命令:

sudo znapzendzetup create --mbuffer=/usr/bin/mbuffer --tsformat='%Y-%m-%d-%H%M%S' SRC '7d=>1h,1y=>1d' pool/Documents DST '7d=>1h,1y=>1d' root@BACKUPSERVER:pool/Documents

备份在以下之后成功完成:

sudo znapzend --debug --runonce=pool/Documents

感谢这个出色的 ZFS 快照+备份工具!!!

答案1

由于您正在使用,sudo我假设您设置的密钥对于正确的用户无效...尝试

sudo ssh backuphost ls

验证你的设置

答案2

Tobi 为我指明了正确的方向(谢谢!)。我的解决方案是通过 ssh 启用无密码 root 登录,这可能不是理想的选择,但我在家庭局域网中,所以应该没问题。问题是,出于某种原因,我无法让非 root 用户通过 ssh 使用 sudo 运行 zfs 命令,即使无密码 ssh 登录可以完全以该非 root 用户身份运行。'znapzendzetup create --sudo ...' 可以工作,但 'znapzend --noaction --debug ' 给出:'权限被拒绝,ZFS 实用程序必须以 root 身份运行'出于某种原因(我猜想 znapzend 命令没有 --sudo 选项)。因此我设置了 ssh 登录为 root(更新 #2)。为了检查它,我做了:

sudo ssh BACUPSERVER 'zfs list'

然后我必须记住将 znapzendzetup 命令更改为以 root 身份登录(请参阅更新 #3):

sudo znapzendzetup ... root@BACKUPSERVER:pool/Documents

昨晚我为所有三个数据集添加了“1 周=>30 分钟”快照间隔,今天早上它们已完美备份到我的备份服务器。太棒了!

相关内容