What is the problem you are having with rclone?
I am trying to set up a new remote for SugarSync. I accept all defaults and provide my email and password as requested. I get an error message that says
Error: failed to get token: HTTP error 401 (401 Unauthorized)
I have checked and typed my credentials carefully. I am typing them correctly. HOWEVER, I do note that the password contains a space character. I was wondering if there is any chance that the password parsing is not handling the space correctly? If all else fails I will try to rule this out by changing the password on the account, but this act would be highly disruptive since it is shared/used by multiple users on multiple machines not co-located so I was hoping the get an initial response to the question before I try the brute force approach.... I was not attempting to do anything unusual and was surprised that it did not work out of the gate.
What is your rclone version (output from rclone version
)
rclone v1.56.0
- os/version: ubuntu 20.04 (64 bit)
- os/kernel: 5.4.0-80-generic (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.16.5
- go/linking: static
- go/tags: none
Which OS you are using and how many bits (eg Windows 7, 64 bit)
Ubuntu 20.04 64 bit
Which cloud storage system are you using? (eg Google Drive)
SugarSync
The command you were trying to run (eg rclone copy /tmp remote:tmp
)
rclone config
The rclone config contents with secrets removed.
No config generated yet.
A log from the command with the -vv
flag
$ rclone -vv config
2021/08/10 00:44:50 DEBUG : rclone: Version "v1.56.0" starting with parameters ["rclone" "-vv" "config"]
2021/08/10 00:44:50 DEBUG : Using config file from "/home/peter/.config/rclone/rclone.conf"
Current remotes:
Name Type
==== ====
dropbox dropbox
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> n
name> sugarsync
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
1 / 1Fichier
\ "fichier"
2 / Alias for an existing remote
\ "alias"
3 / Amazon Drive
\ "amazon cloud drive"
4 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, SeaweedFS, and Tencent COS
\ "s3"
5 / Backblaze B2
\ "b2"
6 / Box
\ "box"
7 / Cache a remote
\ "cache"
8 / Citrix Sharefile
\ "sharefile"
9 / Compress a remote
\ "compress"
10 / Dropbox
\ "dropbox"
11 / Encrypt/Decrypt a remote
\ "crypt"
12 / Enterprise File Fabric
\ "filefabric"
13 / FTP Connection
\ "ftp"
14 / Google Cloud Storage (this is not Google Drive)
\ "google cloud storage"
15 / Google Drive
\ "drive"
16 / Google Photos
\ "google photos"
17 / Hadoop distributed file system
\ "hdfs"
18 / Hubic
\ "hubic"
19 / In memory object storage system.
\ "memory"
20 / Jottacloud
\ "jottacloud"
21 / Koofr
\ "koofr"
22 / Local Disk
\ "local"
23 / Mail.ru Cloud
\ "mailru"
24 / Mega
\ "mega"
25 / Microsoft Azure Blob Storage
\ "azureblob"
26 / Microsoft OneDrive
\ "onedrive"
27 / OpenDrive
\ "opendrive"
28 / OpenStack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ "swift"
29 / Pcloud
\ "pcloud"
30 / Put.io
\ "putio"
31 / QingCloud Object Storage
\ "qingstor"
32 / SSH/SFTP Connection
\ "sftp"
33 / Sugarsync
\ "sugarsync"
34 / Tardigrade Decentralized Cloud Storage
\ "tardigrade"
35 / Transparently chunk/split large files
\ "chunker"
36 / Union merges the contents of several upstream fs
\ "union"
37 / Uptobox
\ "uptobox"
38 / Webdav
\ "webdav"
39 / Yandex Disk
\ "yandex"
40 / Zoho
\ "zoho"
41 / http Connection
\ "http"
42 / premiumize.me
\ "premiumizeme"
43 / seafile
\ "seafile"
Storage> 33
2021/08/10 00:45:11 DEBUG : sugarsync: config in: state="*all", result=""
2021/08/10 00:45:11 DEBUG : sugarsync: config out: out=&{State:*all-set,0,false Option: OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:45:11 DEBUG : sugarsync: config: reading config parameter "app_id"
Sugarsync App ID.
Leave blank to use rclone's.
Enter a string value. Press Enter for the default ("").
app_id>
2021/08/10 00:45:40 DEBUG : sugarsync: config in: state="*all-set,0,false", result=""
2021/08/10 00:45:40 DEBUG : sugarsync: config out: out=&{State:*all,1,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:45:40 DEBUG : sugarsync: config in: state="*all,1,false", result=""
2021/08/10 00:45:40 DEBUG : sugarsync: config out: out=&{State:*all-set,1,false Option: OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:45:40 DEBUG : sugarsync: config: reading config parameter "access_key_id"
Sugarsync Access Key ID.
Leave blank to use rclone's.
Enter a string value. Press Enter for the default ("").
access_key_id>
2021/08/10 00:46:09 DEBUG : sugarsync: config in: state="*all-set,1,false", result=""
2021/08/10 00:46:09 DEBUG : sugarsync: config out: out=&{State:*all,2,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:46:09 DEBUG : sugarsync: config in: state="*all,2,false", result=""
2021/08/10 00:46:09 DEBUG : sugarsync: config out: out=&{State:*all-set,2,false Option: OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:46:09 DEBUG : sugarsync: config: reading config parameter "private_access_key"
Sugarsync Private Access Key
Leave blank to use rclone's.
Enter a string value. Press Enter for the default ("").
private_access_key>
2021/08/10 00:46:16 DEBUG : sugarsync: config in: state="*all-set,2,false", result=""
2021/08/10 00:46:16 DEBUG : sugarsync: config out: out=&{State:*all,3,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:46:16 DEBUG : sugarsync: config in: state="*all,3,false", result=""
2021/08/10 00:46:16 DEBUG : sugarsync: config out: out=&{State:*all-set,3,false Option:false OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:46:16 DEBUG : sugarsync: config: reading config parameter "hard_delete"
Permanently delete files if true
otherwise put them in the deleted files.
Enter a boolean value (true or false). Press Enter for the default ("false").
hard_delete>
2021/08/10 00:46:18 DEBUG : sugarsync: config in: state="*all-set,3,false", result="false"
2021/08/10 00:46:18 DEBUG : sugarsync: config out: out=&{State:*all,4,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:46:18 DEBUG : sugarsync: config in: state="*all,4,false", result=""
2021/08/10 00:46:18 DEBUG : sugarsync: config out: out=&{State:*all,5,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:46:18 DEBUG : sugarsync: config in: state="*all,5,false", result=""
2021/08/10 00:46:18 DEBUG : sugarsync: config out: out=&{State:*all,6,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:46:18 DEBUG : sugarsync: config in: state="*all,6,false", result=""
2021/08/10 00:46:18 DEBUG : sugarsync: config out: out=&{State:*all,7,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:46:18 DEBUG : sugarsync: config in: state="*all,7,false", result=""
2021/08/10 00:46:18 DEBUG : sugarsync: config out: out=&{State:*all,8,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:46:18 DEBUG : sugarsync: config in: state="*all,8,false", result=""
2021/08/10 00:46:18 DEBUG : sugarsync: config out: out=&{State:*all,9,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:46:18 DEBUG : sugarsync: config in: state="*all,9,false", result=""
2021/08/10 00:46:18 DEBUG : sugarsync: config out: out=&{State:*all,10,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:46:18 DEBUG : sugarsync: config in: state="*all,10,false", result=""
2021/08/10 00:46:18 DEBUG : sugarsync: config out: out=&{State:*all,11,false Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:46:18 DEBUG : sugarsync: config in: state="*all,11,false", result=""
2021/08/10 00:46:18 DEBUG : sugarsync: config out: out=&{State:*all-advanced Option:false OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:46:18 DEBUG : sugarsync: config: reading config parameter "config_fs_advanced"
Edit advanced config?
y) Yes
n) No (default)
y/n>
2021/08/10 00:46:22 DEBUG : sugarsync: config in: state="*all-advanced", result="false"
2021/08/10 00:46:22 DEBUG : sugarsync: config out: out=&{State:*postconfig Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:46:22 DEBUG : sugarsync: config in: state="*postconfig", result=""
2021/08/10 00:46:22 DEBUG : sugarsync: config in: state="", result=""
2021/08/10 00:46:22 DEBUG : sugarsync: config out: out=&{State:username Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:46:22 DEBUG : sugarsync: config out: out=&{State:username Option:<nil> OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:46:22 DEBUG : sugarsync: config in: state="username", result=""
2021/08/10 00:46:22 DEBUG : sugarsync: config out: out=&{State:password Option: OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:46:22 DEBUG : sugarsync: config: reading config parameter "config_username"
username (email address)
Enter a string value. Press Enter for the default ("").
config_username> <REDACTED>
2021/08/10 00:46:49 DEBUG : sugarsync: config in: state="password", result="<REDACTED>"
2021/08/10 00:46:49 DEBUG : Saving config "username" in section "sugarsync" of the config file
2021/08/10 00:46:49 DEBUG : sugarsync: config out: out=&{State:auth Option: OAuth:<nil> Error: Result:}, err=<nil>
2021/08/10 00:46:49 DEBUG : sugarsync: config: reading config parameter "config_password"
Your Sugarsync password.
Only required during setup and will not be stored.
y) Yes type in my own password
g) Generate random password
n) No leave this optional password blank (default)
y/g/n> y
Enter the password:
password:
Confirm the password:
password:
2021/08/10 00:47:59 DEBUG : sugarsync: config in: state="auth", result="<REDACTED>"
2021/08/10 00:47:59 DEBUG : Saving config "username" in section "sugarsync" of the config file
2021/08/10 00:48:00 DEBUG : sugarsync: config out: out=<nil>, err=failed to get token: HTTP error 401 (401 Unauthorized) returned body: "<html>\n<head>\n <title>Status page</title>\n</head>\n<body>\n<h3>invalid user credentials</h3><p>You can get technical details <a href=\"http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2\">here</a>.<br>\nPlease continue your visit at our <a href=\"/\">home page</a>.\n</p>\n</body>\n</html>\n"
Error: failed to get token: HTTP error 401 (401 Unauthorized) returned body: "<html>\n<head>\n <title>Status page</title>\n</head>\n<body>\n<h3>invalid user credentials</h3><p>You can get technical details <a href=\"http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2\">here</a>.<br>\nPlease continue your visit at our <a href=\"/\">home page</a>.\n</p>\n</body>\n</html>\n"
Usage:
rclone config [flags]
rclone config [command]
Available Commands:
create Create a new remote with name, type and options.
delete Delete an existing remote `name`.
disconnect Disconnects user from remote
dump Dump the config file as JSON.
file Show path of configuration file in use.
password Update password in an existing remote.
providers List in JSON format all the providers and options.
reconnect Re-authenticates user with remote.
show Print (decrypted) config file, or the config for a single remote.
touch Ensure configuration file exists.
update Update options in an existing remote.
userinfo Prints info about logged in user of remote.
Flags:
-h, --help help for config
Additional help topics:
rclone config edit Enter an interactive configuration session.
Use "rclone [command] --help" for more information about a command.
Use "rclone help flags" for to see the global flags.
Use "rclone help backends" for a list of supported services.
2021/08/10 00:48:00 Fatal error: failed to get token: HTTP error 401 (401 Unauthorized) returned body: "<html>\n<head>\n <title>Status page</title>\n</head>\n<body>\n<h3>invalid user credentials</h3><p>You can get technical details <a href=\"http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2\">here</a>.<br>\nPlease continue your visit at our <a href=\"/\">home page</a>.\n</p>\n</body>\n</html>\n"