SSH

# Accept a new host fingerprint. Otherwise, you get error Host key verification failed.
ssh -o StrictHostKeyChecking=accept-new [email protected]

# Pass password
sshpass -p "${SSH_PASS}" ssh [email protected]

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

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

scp

# Upload a file to remote.
scp -r /bin/mongoimport [email protected]:/home/admin/bin

# Download a file to remote.
scp -r [email protected]:/home/admin/bin/mongoimport /bin

# With sshpass
sshpass -p "${SSH_PASS}" scp -r [email protected]:/home/admin/bin/mongoimport /bin

# Using wildcard (*)
sshpass -p "${SSH_PASS}" scp -r "[email protected]:/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 "[email protected]:/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