SSH

# Accept a new host fingerprint. Otherwise, you get error Host key verification failed.
ssh -o StrictHostKeyChecking=accept-new admin@10.123.11.123

# Pass password
sshpass -p "${SSH_PASS}" ssh admin@10.123.11.123

# Template
ssh-keygen -f "${HOME}/.ssh/known_hosts" -R "10.123.11.123"
sshpass -p "${SSH_PASS}" ssh -o StrictHostKeyChecking=accept-new admin@10.123.11.123

# Execute command and exit
ssh -t admin@10.123.11.123 "mkdir -p /home/admin/bin"    # Reboot for .profile to take effect on $HOME/bin

scp

# Upload a file to remote.
scp -r /bin/mongoimport admin@10.123.11.123:/home/admin/bin

# Download a file to remote.
scp -r admin@10.123.11.123:/home/admin/bin/mongoimport /bin

# With sshpass
sshpass -p "${SSH_PASS}" scp -r admin@10.123.11.123:/home/admin/bin/mongoimport /bin

# Using wildcard (*)
sshpass -p "${SSH_PASS}" scp -r "admin@10.123.11.123:/home/admin/d/listings.db*"   /data/

# Template
ssh-keygen -f "${HOME}/.ssh/known_hosts" -R "10.123.11.123"
sshpass -p "${SSH_PASS}" scp -o StrictHostKeyChecking=accept-new -r "admin@10.123.11.123:/home/admin/d/listings.db*"   /data/

# Can't scp due to permission. Sudo move file to /tmp and allow read by everyone(chmod 1004)
sshpass -p "${SSH_PASS}" ssh -t admin@${ip_addr} "sudo \cp /app/opencex/backend/.env /tmp; sudo chmod 1004 /tmp/.env"
sshpass -p "${SSH_PASS}" ssh -t admin@${ip_addr} "ls /tmp/.env"
sshpass -p "${SSH_PASS}" scp -r "admin@${ip_addr}://tmp/.env" .env.bck