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