ssh og user eq

Dersom du stadig gjør ssh frem og tilbake mellom systemer, ønsker du sikkert å sette opp “user equivalence”. Med utgangspunkt i et tips fra Rails boka til Ezra Zygmuntowicz har jeg laget en funksjon som legges i .bash_profile filen din:


function authme {

  if [ -z "$1" ]; then
    echo "USE: authme hostname [user]"
    return 1
  fi

  _HOST=${1}
  if [ -z "$2" ]; then
    _USR=${USER}
  else
    _USR=$2
  fi

  cat ~/.ssh/id_dsa.pub | ssh ${_USR}@${_HOST} '
  # create if not exists
  if [ ! -d ~/.ssh ]; then
    mkdir ~/.ssh
  fi
  # set perm
  chmod 0700 ~/.ssh
  # now cat input
  cat     >> ~/.ssh/authorized_keys
  # set perm
  chmod 0600 ~/.ssh/authorized_keys
  '
}

Dersom du kaller func med bare hostname blir din ssh id kopiert inn i din brukers område på angitt host. Hele poenget her er å gjøre all jobben i et pass, slik at du ikke må angi passord mer enn en gang. Derfor er alle kommandoer på “remote host” pakket inn i enkeltfnutter. Du kan også angi en annen bruker dersom du ønsker det. Feks har jeg satt dette opp for en del Oracle brukere/systemer som jeg jobber mot hver eneste dag.

Leave a Reply

You must be logged in to post a comment.