Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > *NIX системы: Общие вопросы > Проверка доступа по SSH+RSA key


Автор: KEM 19.1.2011, 16:39
Всем привет!
Надеюсь не промахнулся с веткой.
Существует сервер с которого нужно проверять состояние служб на других серверах. Проверка идёт с помощью команд в bash. Но что бы их выполнить нужен без парольный доступ по ssh (rsa ключ).

Скрип проверки этого доступа привожу ниже.
Код

#!/bin/bash
    #0    rsa_ok    
    #1    no_rsa
    #2    no_ssh

    TMP_FILE="rsa_test.txt"    
    (ssh -fn root@$1 'echo' &> /dev/null; [ "$?" == "0" ] && (echo 0 > $TMP_FILE) || (echo 2 > $TMP_FILE) ) &
    pd=$!;
    sleep 1; 
    ps -a | grep -c $pd &> /dev/null;
    [ "$?" == "0" ] && sleep 2; 
    
    kill -9 $pd &> /dev/null;
    [ "$?" == "0" ] && echo 1 > $TMP_FILE ;
    #wait $pd &> /dev/null ; #no wait because ssh in stop state
    result=`cat $TMP_FILE  2>/dev/null || echo 2`;
    rm -f $TMP_FILE;
    exit $result;


Проблема в следующем....  никак не могу избавиться от "предложение" ввести пароль, на тех серверах где доступ по ключу отсутствует, при этом портится весь вывод, и в итоге после отработки скрипта, консоль становиться не пригодна к работе!  smile 
Подскажите как этого можно избежать? Как можно подавить это ssh  приглашение на ввод пароля ?  smile 



UP
pd=$!; -> pd=$! ;
в отдельном потоке
Код

    [ "$1" == "" ] ||  [ "$1" == "" ] || [ "$1" == "" ] && echo "No parameters" && exit 123

    TFLE=$3;
    (ssh $1@$2 'echo'; echo "$?" > $TFLE) &
    pd=$! ;
    #sleep 1; 
    #ps -a | grep  $pd #&> /dev/null;
    #[ "$?" == "0" ] && sleep 1; 
    cn="1";
    TM="20";
    sleep $cn;
    while (( "$cn" < "$TM" ));
    do
        ps -ef | grep -v grep | grep  $pd &> /dev/null
        [ "$?" == "0" ] && sleep 1 || break; 
        ((cn++));
        
    done

    kill -9 $pd &> /dev/null;
    [ "$?" == "0" ] && echo 1 > $TFLE ;


и читаем из файла

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)