#!/bin/bash #--------------------------------------------------------------------# #File: ssh-authorize-host # #Description: Add a public key to a remote SSH-capable host. # #Package: AniNIX::MiscScripts #Copyright: WTFPL # #Author: DarkFeather #Changelog by editor: #--------------------------------------------------------------------# # Show the usage for this script. function usage { echo "Usage: $0 host [ pubkeyfile ]" } # Create the initial SSH command. function initialSSHCommand() { echo 'mkdir -p ${HOME}/.ssh' echo 'touch ${HOME}/.ssh/authorized_keys' echo 'chmod 0700 ${HOME} ${HOME}/.ssh' echo 'chmod 0600 ${HOME}/.ssh/authorized_keys' echo 'chown -R `whoami`":" ${HOME}' echo 'cat > ${HOME}/.ssh/authorized_keys' } # Parse the CLI arguments. host="$1" if [ -z "$host" ]; then usage; exit 1; fi pubkeyfile="$2" if [ -z "$pubkeyfile" ] || [ ! -f "$pubkeyfile" ]; then pubkeyfile="${HOME}/.ssh/id_rsa.pub" fi # Execute on the remote host. (initialSSHCommand; cat "$pubkeyfile") | ssh "$host" /bin/bash