I am trying to set up ZFS replication between my TrueNAS box and my new & shiny RAIDZ2 pool that I created on my Proxmox server. I tried setting up the SSH connection and then setting up a Replication task, but it has failed each time.
First thing I tried was
The second way I tried was
What am I doing wrong?
First thing I tried was
- I created Replication task
- selected the Manual option since my destination is a non TrueNAS device
- provided the proxmox IP address generated a new key in the dialog.
- Then when expanding the Destination folders it gives this error
Code:
Error: Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/zettarepl.py", line 654, in _handle_ssh_exceptions yield File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/zettarepl.py", line 409, in list_datasets datasets = await self.middleware.run_in_thread(list_datasets, shell) File "/usr/local/lib/python3.9/site-packages/middlewared/utils/run_in_thread.py", line 10, in run_in_thread return await self.loop.run_in_executor(self.run_in_thread_executor, functools.partial(method, *args, **kwargs)) File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 52, in run result = self.fn(*self.args, **self.kwargs) File "/usr/local/lib/python3.9/site-packages/zettarepl/dataset/list.py", line 13, in list_datasets return [dataset["name"] for dataset in list_datasets_with_properties(shell, dataset, recursive)] File "/usr/local/lib/python3.9/site-packages/zettarepl/dataset/list.py", line 30, in list_datasets_with_properties output = shell.exec(args) File "/usr/local/lib/python3.9/site-packages/zettarepl/transport/interface.py", line 89, in exec return self.exec_async(args, encoding, stdout).wait(timeout) File "/usr/local/lib/python3.9/site-packages/zettarepl/transport/interface.py", line 93, in exec_async async_exec.run() File "/usr/local/lib/python3.9/site-packages/zettarepl/transport/base_ssh.py", line 27, in run client = self.shell.get_client() File "/usr/local/lib/python3.9/site-packages/zettarepl/transport/base_ssh.py", line 123, in get_client client.connect( File "/usr/local/lib/python3.9/site-packages/paramiko/client.py", line 435, in connect self._auth( File "/usr/local/lib/python3.9/site-packages/paramiko/client.py", line 764, in _auth raise saved_exception File "/usr/local/lib/python3.9/site-packages/paramiko/client.py", line 664, in _auth self._transport.auth_publickey(username, pkey) File "/usr/local/lib/python3.9/site-packages/paramiko/transport.py", line 1580, in auth_publickey return self.auth_handler.wait_for_response(my_event) File "/usr/local/lib/python3.9/site-packages/paramiko/auth_handler.py", line 250, in wait_for_response raise e paramiko.ssh_exception.AuthenticationException: Authentication failed. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/middlewared/main.py", line 138, in call_method result = await self.middleware._call(message['method'], serviceobj, methodobj, params, app=self, File "/usr/local/lib/python3.9/site-packages/middlewared/main.py", line 1213, in _call return await methodobj(*prepared_call.args) File "/usr/local/lib/python3.9/site-packages/middlewared/schema.py", line 975, in nf return await f(*args, **kwargs) File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/replication.py", line 642, in list_datasets return await self.middleware.call("zettarepl.list_datasets", transport, ssh_credentials) File "/usr/local/lib/python3.9/site-packages/middlewared/main.py", line 1256, in call return await self._call( File "/usr/local/lib/python3.9/site-packages/middlewared/main.py", line 1213, in _call return await methodobj(*prepared_call.args) File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/zettarepl.py", line 409, in list_datasets datasets = await self.middleware.run_in_thread(list_datasets, shell) File "/usr/local/lib/python3.9/contextlib.py", line 199, in __aexit__ await self.gen.athrow(typ, value, traceback) File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/zettarepl.py", line 657, in _handle_ssh_exceptions raise CallError(repr(e).replace("[Errno None] ", ""), errno=errno.EACCES) middlewared.service_exception.CallError: [EACCES] AuthenticationException('Authentication failed.')
The second way I tried was
- to create a SSH keypair under System-->SSH Keypairs on TrueNAS
- Then I copied the public key and pasted it under the Proxmox root user's authorized_keys file
- Then I created a new SSH Connection in TrueNAS using System-->SSH Connections
- Then I tried to create a Replication task and used the previously created SSH Connection.
Code:
Error: Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/zettarepl.py", line 654, in _handle_ssh_exceptions yield File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/zettarepl.py", line 409, in list_datasets datasets = await self.middleware.run_in_thread(list_datasets, shell) File "/usr/local/lib/python3.9/site-packages/middlewared/utils/run_in_thread.py", line 10, in run_in_thread return await self.loop.run_in_executor(self.run_in_thread_executor, functools.partial(method, *args, **kwargs)) File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 52, in run result = self.fn(*self.args, **self.kwargs) File "/usr/local/lib/python3.9/site-packages/zettarepl/dataset/list.py", line 13, in list_datasets return [dataset["name"] for dataset in list_datasets_with_properties(shell, dataset, recursive)] File "/usr/local/lib/python3.9/site-packages/zettarepl/dataset/list.py", line 30, in list_datasets_with_properties output = shell.exec(args) File "/usr/local/lib/python3.9/site-packages/zettarepl/transport/interface.py", line 89, in exec return self.exec_async(args, encoding, stdout).wait(timeout) File "/usr/local/lib/python3.9/site-packages/zettarepl/transport/interface.py", line 93, in exec_async async_exec.run() File "/usr/local/lib/python3.9/site-packages/zettarepl/transport/base_ssh.py", line 27, in run client = self.shell.get_client() File "/usr/local/lib/python3.9/site-packages/zettarepl/transport/base_ssh.py", line 123, in get_client client.connect( File "/usr/local/lib/python3.9/site-packages/paramiko/client.py", line 435, in connect self._auth( File "/usr/local/lib/python3.9/site-packages/paramiko/client.py", line 764, in _auth raise saved_exception File "/usr/local/lib/python3.9/site-packages/paramiko/client.py", line 664, in _auth self._transport.auth_publickey(username, pkey) File "/usr/local/lib/python3.9/site-packages/paramiko/transport.py", line 1580, in auth_publickey return self.auth_handler.wait_for_response(my_event) File "/usr/local/lib/python3.9/site-packages/paramiko/auth_handler.py", line 250, in wait_for_response raise e paramiko.ssh_exception.AuthenticationException: Authentication failed. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/middlewared/main.py", line 138, in call_method result = await self.middleware._call(message['method'], serviceobj, methodobj, params, app=self, File "/usr/local/lib/python3.9/site-packages/middlewared/main.py", line 1213, in _call return await methodobj(*prepared_call.args) File "/usr/local/lib/python3.9/site-packages/middlewared/schema.py", line 975, in nf return await f(*args, **kwargs) File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/replication.py", line 642, in list_datasets return await self.middleware.call("zettarepl.list_datasets", transport, ssh_credentials) File "/usr/local/lib/python3.9/site-packages/middlewared/main.py", line 1256, in call return await self._call( File "/usr/local/lib/python3.9/site-packages/middlewared/main.py", line 1213, in _call return await methodobj(*prepared_call.args) File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/zettarepl.py", line 409, in list_datasets datasets = await self.middleware.run_in_thread(list_datasets, shell) File "/usr/local/lib/python3.9/contextlib.py", line 199, in __aexit__ await self.gen.athrow(typ, value, traceback) File "/usr/local/lib/python3.9/site-packages/middlewared/plugins/zettarepl.py", line 657, in _handle_ssh_exceptions raise CallError(repr(e).replace("[Errno None] ", ""), errno=errno.EACCES) middlewared.service_exception.CallError: [EACCES] AuthenticationException('Authentication failed.')
What am I doing wrong?