Linux SCP – Use Special Username

linuxscpshell

I'm trying to create a shell script for copying files to a remote backup.

This is my script so far:

PASSWORD=MY-SECRET-PASS
URL=SLOS755513-3:SL1255513@objectstorage.net
DIR=/backup

scp /home/user/my_log.txt $URL:$DIR

But I'm getting the error:

ssh: Could not resolve hostname SLOS755513-3: Name or service not known
lost connection

I guess it's because of the special characters in the username, because if I simply write test instead it actually tries to connect with test as user.

But I've tried to escape \- and \: and everything gives me the same error.
I'm also unsure how to use the password in the script.

Best Answer

Try something like this:

RUSER='SLOS755513-3:SL1255513'
HOST=objectstorage.net
DIR=/backup

scp -o user=$RUSER /home/user/my_log.txt $HOST:$DIR 

This will make the user part explicit so scp doesn't try to interpret : as host/path separator. -o user=$USER will send the user as an option to the underlying ssh.