Linux Mint 19 and Backblaze B2

I am hoping for some help after spending way to much time trying to get this to work. :slight_smile: I have been using B2 with rclone since CrashPlan announced they would drop support for Linux. I would love to get an easier and more flexible GUI for B2 though. I went looking for options again and ran across Duplicati.

On the surface it looks like Duplicati is exactly what I was looking for… If I could get it to work. I have set up a new bucket on B2. Hopefully I will be able to connect to the ones I have up there already, but I thought I would test with a new one. I created a new backup in Duplicati and give it a name and password for AES. The name is the same as the bucket if that matters.

I then set the storage type to B2 and fill out the rest. Setting the bucket name, leaving the path blank and using my account ID and a newly created application key. Hitting test connection at this point give me a 401 - UnAuthorized error. If I chose the username and password under the advanced options the error changes to bad_auth_token.

So far, I have updated my version of Mono to 5.14.0.177 and have installed ca-certificates-mono and run cert-sync. I think that helped as before that I didn’t get either of these errors, just a failure to authenticate. I am not sure what else to try. It is now midnight so I thought I would leave this here and see if others have ideas.

Below are the stdout logs from the server. I restarted it after each install / cert-sync as well.

System.Exception: 401 - bad_auth_token: 
  at Duplicati.Library.Backend.Backblaze.B2AuthHelper.AttemptParseAndThrowException (System.Exception ex) [0x000b5] in <744672e2da8444bdaaf10c5b0487d731>:0 
  at Duplicati.Library.Backend.Backblaze.B2AuthHelper.get_Config () [0x00148] in <744672e2da8444bdaaf10c5b0487d731>:0 
  at Duplicati.Library.Backend.Backblaze.B2AuthHelper.get_APIUrl () [0x00000] in <744672e2da8444bdaaf10c5b0487d731>:0 
  at Duplicati.Library.Backend.Backblaze.B2.List () [0x00011] in <744672e2da8444bdaaf10c5b0487d731>:0 
  at Duplicati.Library.Interface.BackendExtensions.TestList (Duplicati.Library.Interface.IBackend backend) [0x00000] in <b7a5128865b14f37a66544de6a7ae6fb>:0 
  at Duplicati.Library.Backend.Backblaze.B2.Test () [0x00000] in <744672e2da8444bdaaf10c5b0487d731>:0 
  at Duplicati.Server.WebServer.RESTMethods.RemoteOperation.TestConnection (System.String url, Duplicati.Server.WebServer.RESTMethods.RequestInfo info) [0x000b7] in <670b0e4a9ae144208688fcb192d20146>:0 
  at Duplicati.Server.WebServer.RESTMethods.RemoteOperation.POST (System.String key, Duplicati.Server.WebServer.RESTMethods.RequestInfo info) [0x00091] in <670b0e4a9ae144208688fcb192d20146>:0 
  at Duplicati.Server.WebServer.RESTHandler.DoProcess (Duplicati.Server.WebServer.RESTMethods.RequestInfo info, System.String method, System.String module, System.String key) [0x0026e] in <670b0e4a9ae144208688fcb192d20146>:0 
System.Exception: 401 - unauthorized: 
  at Duplicati.Library.Backend.Backblaze.B2AuthHelper.AttemptParseAndThrowException (System.Exception ex) [0x000b5] in <744672e2da8444bdaaf10c5b0487d731>:0 
  at Duplicati.Library.Backend.Backblaze.B2AuthHelper.get_Config () [0x00148] in <744672e2da8444bdaaf10c5b0487d731>:0 
  at Duplicati.Library.Backend.Backblaze.B2AuthHelper.get_APIUrl () [0x00000] in <744672e2da8444bdaaf10c5b0487d731>:0 
  at Duplicati.Library.Backend.Backblaze.B2.List () [0x00011] in <744672e2da8444bdaaf10c5b0487d731>:0 
  at Duplicati.Library.Interface.BackendExtensions.TestList (Duplicati.Library.Interface.IBackend backend) [0x00000] in <b7a5128865b14f37a66544de6a7ae6fb>:0 
  at Duplicati.Library.Backend.Backblaze.B2.Test () [0x00000] in <744672e2da8444bdaaf10c5b0487d731>:0 
  at Duplicati.Server.WebServer.RESTMethods.RemoteOperation.TestConnection (System.String url, Duplicati.Server.WebServer.RESTMethods.RequestInfo info) [0x000b7] in <670b0e4a9ae144208688fcb192d20146>:0 
  at Duplicati.Server.WebServer.RESTMethods.RemoteOperation.POST (System.String key, Duplicati.Server.WebServer.RESTMethods.RequestInfo info) [0x00091] in <670b0e4a9ae144208688fcb192d20146>:0 
  at Duplicati.Server.WebServer.RESTHandler.DoProcess (Duplicati.Server.WebServer.RESTMethods.RequestInfo info, System.String method, System.String module, System.String key) [0x0026e] in <670b0e4a9ae144208688fcb192d20146>:0 

Thank you for any and all help!

Hi @PhilD41 and welcome to the forum!

Are you by any chance using the new improved version of application keys or is this the usual master key?

If you actually got a newly created master key it would break your old uses, so maybe you took a new path.

Follow the link in this thread. Summary is keyId is the account, while the shown-to-you-once key is the key.

On Windows, this was enough to change a 401 on “Test connection” (with various form-fillings) to success.

If this gets you past your failing spot, feel free to test it further. If successful, folks here might like to know…

2 Likes

Thank @ts678!! You nailed it. I had tried just about every permutation possible, except not using my account ID and using the KeyID. That worked perfectly.

Thanks to ncw and Google. I agree with ncw that this should be explained somehow. I don’t see it here yet.

Here’s Restic’s manual and a Backblaze note.

Duplicati doesn’t seem to speak to this yet in either Commandline help b2 or the online manual found here.

Actually it should probably also be tested more (this is where you come in :wink:) before claiming that it works.

Fair, I read through the Backblaze information for Duplicati but wasn’t coming up with much else. Then again, it was late and I was tired as well. Hopefully that information will continue to filter into additional documentation quickly.