Собственно, генерация ключа разжевана миллионы раз (если лень читать ssh-keygen(1), то можно глянуть тут, например). Далее настает огромная лень – это ж нужно свой id_dsa.pub залить на каждую машинку, вкинуть его в authorized_keys и т.п. В общем, куча ручной работы. Во линуксах есть ssh-copy-id, но не во всех дистрибутивах, как я вижу в своем хозяйстве.
Т.к. собственную лень нужно всячески баловать
написал небольшой скриптец на шелле. Достаточно его и собственный id_dsa.pub (который не секретен, так как публичен) залить какой-нить ресурс – и можно будет ключи распространять чуть ли не на автомате. Подчеркиваю – никакого rocket science, просто быстрый хак на shell. Не забудьте модифицировать под свои условия.
#!/bin/sh
# Use your own params
TMPFILE=`mktemp /tmp/deineka.XXXXXX` || exit 1
AKEYS=$HOME/.ssh/authorized_keys
URL=http://my-site-or-dropbox.etc/securedir/id_dsa.pub
DetectFetch()
{
if test -x /usr/bin/fetch; then
fetch="/usr/bin/fetch -o "
elif test -x /usr/bin/wget; then
fetch="/usr/bin/wget -O "
elif test -x /usr/bin/curl; then
fetch="/usr/bin/curl -o "
else
echo "ERROR: no fetch program found."
exit 1
fi
}
DetectFetch
echo Fetching key
$fetch $TMPFILE $URL
echo -n Adding to $AKEYS...
if [ ! -d $HOME/.ssh ]; then
mkdir -p $HOME/.ssh
chmod 700 $HOME/.ssh
fi
cat $TMPFILE >> $AKEYS
echo done
chmod 600 $AKEYS
rm -f $TMPFILE
Использование простое до неприличия – скачали скрипт, запустили его, удалили его.
p.s. Функцию DetectFetch честно скопировал из инсталлятора продуктов ISPSystem