SignatureDoesNotMatch connecting to S3 from Pi

What is the problem you are having with rclone?

I'm new to using RClone. Im trying to setup a raspberry pi to pull data from an AWS S3 bucket (I will only be using this as a one way pulling data from S3 to the pi only) from a specific folder within the bucket however when setting up the remote connection, adding my access key, secret key, region etc I'm not able to connect, im getting signature errors regardless if im trying to list files etc. For example running the command (the bucket name has been changed for privacy reasons):
rclone lsf -R mys3:mybucketname/

I get the response:
Failed to lsf: error in ListJSON: SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your key and signing method.
status code: 403 .....

The IAMS user I've created the access key and secret key should have full access permissions to S3 (though do let me know if there are specific permissions I need to check on.

The first time I setup the S3 remote I did get asked about a signature (v4) which I think I just clicked through, however I can't seem to see that option again. Whether this has any influence on the issue.

I've filled in the below questions, hope this helps!

Run the command 'rclone version' and share the full output of the command.

rclone v1.63.0

  • os/version: raspbian 11.7 (64 bit)
  • os/kernel: 6.1.21-v8+ (aarch64)
  • os/type: linus
  • os/arch: arm64 (ARMv8 compatible)
  • gs/version: go1.20.5
  • go/linking: static
  • go/tags: none

Which cloud storage system are you using? (eg Google Drive)


The command you were trying to run (eg rclone copy /tmp remote:tmp)

rclone lsf -R mys3:mybucketname/

The rclone config contents with secrets removed.

- type: s3
- provider: AWS
- region: eu-west-2
- location_constraint: eu-west-2
- acl: bucket-owner-full-control
- env_auth: false
- access_key: xxx
- secret_access_key: xxx

A log from the command with the -vv flag

2023/07/13 14:41:50 DEBUG : rclone: Version "v1.63.0" starting with parameters ["rclone" "lsf" "-R" "mys3:mybucketname" "-vv"]
2023/07/13 14:41:50 DEBUG : Creating backend with remote "mys3:mybucketname"
2023/07/13 14:41:50 DEBUG : Using config file from "/home/pi/.config/rclone/rclone.conf"
2023/07/13 14:41:50 DEBUG : name = "mys3", root = "mybucketname", opt = &s3.Options{Provider:"AWS", EnvAuth:false, AccessKeyID:"xxx", SecretAccessKey:"xxx", Region:"eu-west-2", Endpoint:"", STSEndpoint:"", LocationConstraint:"eu-west-2", ACL:"bucket-owner-full-control", BucketACL:"", RequesterPays:false, ServerSideEncryption:"", SSEKMSKeyID:"", SSECustomerAlgorithm:"", SSECustomerKey:"", SSECustomerKeyBase64:"", SSECustomerKeyMD5:"", StorageClass:"", UploadCutoff:209715200, CopyCutoff:4999341932, ChunkSize:5242880, MaxUploadParts:10000, DisableChecksum:false, SharedCredentialsFile:"", Profile:"", SessionToken:"", UploadConcurrency:4, ForcePathStyle:true, V2Auth:false, UseAccelerateEndpoint:false, LeavePartsOnError:false, ListChunk:1000, ListVersion:0, ListURLEncode:fs.Tristate{Value:false, Valid:false}, NoCheckBucket:false, NoHead:false, NoHeadObject:false, Enc:0x3000002, MemoryPoolFlushTime:60000000000, MemoryPoolUseMmap:false, DisableHTTP2:false, DownloadURL:"", DirectoryMarkers:false, UseMultipartEtag:fs.Tristate{Value:false, Valid:false}, UsePresignedRequest:false, Versions:false, VersionAt:fs.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}, Decompress:false, MightGzip:fs.Tristate{Value:false, Valid:false}, UseAcceptEncodingGzip:fs.Tristate{Value:false, Valid:false}, NoSystemMetadata:false}
2023/07/13 14:41:50 DEBUG : 6 go routines active
2023/07/13 14:41:50 Failed to lsf: error in ListJSON: SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your key and signing method.
	status code: 403, request id: R9V93GK8JDP7Y7ZX, host id: z/nuSME1155Zogz2q0rWNGJlHG/SGJip+UOM7Hzir1npUoK3SE82opSR9EIhPLxzy9H03H0uHPclaLswOBioKg==

Yes your credentials are not valid. You have to sort it out:)

I suggest you delete all and start again following some online guide (there are many) - it is probably easier than troubleshoot misconfigured AWS user.

But everything else you are doing right - so probably some small mistake to correct on AWS end.

Here some info on your error - maybe it helps:

perhaps that should be access_key_id?
tho rclone does not complain about it

have you tested the credentials using aws s3 cli or other such tool?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.