Dicas para SSH e SCP

Um interessante post com algumas dicas para facilitar o trabalho com ssh e scp quando gerenciamos diversos computadores remotos.

http://www.howtoforge.com/tips-to-make-ssh-scp-usage-more-convenient

Com base neste post eu fiz algumas alterações no script para facilitar ainda mais a utilização. Abaixo uma versão melhorada do script ssh-generic

#!/bin/bash

#Usado para gerar os links simbolicos - ssh-, scp-to, scp-from
#Use ssh-generic -genlinks
hosts="host1 outrohost maisum"

port="22"
case "$0" in
*-host1)
   account="root@host1"
   ;;
*-outrohost)
   account="root@192.168.0.1"
   ;;
*-maisum)
   account="root@200.30.20.1"
   port="2222"
   ;;
*)
   if [ "$1" == "-genlinks" ]
   then

      for x in $hosts
      do
         [ ! -f ssh-$x ] && ln -s ssh-generic ssh-$x
         [ ! -f scp-to-$x ] && ln -s ssh-generic scp-to-$x
         [ ! -f scp-from-$x ] && ln -s ssh-generic scp-from-$x
      done

      exit 0
   else

      echo "unsupported name: $0"
      exit 1
   fi

;;
esac

case "$0" in
*/ssh-*)
echo running ssh -p $port $account "$@"
ssh -p $port $account "$@"
;;
*/scp-to-*)
echo running scp -P $port "$@" $account:
scp -P $port "$@" $account:$scpdir
;;
*/scp-from-*)
echo scp -P $port $account:$1 .
scp -P $port $account:$1 .
;;
*)
echo "unsupported name: $0"
exit 1
;;
esac

A nova versão tem um recurso para gerar os links simbólicos para cada host, basta chamar o script da seguinte forma:

# ssh-generic -genlinks

Para cada host que estiver declarado na variável “hosts” será gerado um link.

Da mesma forma o outro script que gera uma chave ssh e copia para um host:

#!/bin/bash

if test -z "$1"; then
        echo Usage: $0 '[-p
] '
        exit 1
fi

if ! test -s $HOME/.ssh/id_rsa.pub; then
    ssh-keygen -t rsa
fi

cd
cat $HOME/.ssh/id_rsa.pub | \
    ssh "$@" "cd; mkdir -p .ssh; touch .ssh/authorized_keys; cat >> .ssh/authorized_keys"

cd -

exit 0

Deixe um comentário