Автоматически принимать rsa отпечатков пальцев с помощью pscp - PullRequest
1 голос
/ 03 октября 2011

Когда вы используете pscp для отправки файлов на один компьютер, это не имеет большого значения, потому что вы получите запрос отпечатка пальца rsa один раз и больше никогда после.Но если вы хотите подключиться к 200 компьютерам, вам определенно не нужно вводить «да» 200 раз ....

Я использую pscp на компьютере с Windows, и мне действительно все равноотпечаток пальца, я только хочу принять это.Я использую Amazon EC2, и отпечатки пальцев меняются каждый раз, когда я перезагружаю машины ....

Если есть способ избежать этого, используя pscp или другой инструмент, пожалуйста, дайте мне знать !!!

Спасибо!

Ответы [ 4 ]

6 голосов
/ 11 декабря 2013

См. Putty не будет кэшировать ключи для доступа к серверу при запуске скрипта в hudson

В Windows вы можете использовать префикс echo y | перед вашей командой, который вслепую будет принимать любой ключ хоста каждый раз. Однако более безопасным решением является первый запуск в интерактивном режиме или создание файла .reg, который можно запустить на любом клиентском компьютере.

4 голосов
/ 18 октября 2012

Я не совсем согласен с последним ответом.Когда вы принимаете ключ SSH в первый раз, вы ничего не знаете об удаленном хосте, поэтому автоматическое принятие его не имеет значения.

Что бы я сделал, это автоматически принял ключ при первом подключении к хосту.Я читал, что делать что-то вроде yes yes | ssh user@host работает, но это не так, потому что SSH не читает из стандартного ввода, а из терминала.

Что работает, чтобы передать, что при первом подключенииследующая опция ssh (работает как для scp, так и для ssh:

scp -oStrictHostKeyChecking=no user@host1:file1 user@host2:file2

Эта команда добавит ключ при первом запуске, но если, как говорит Эрик, сделать это, как только вы приметеключ опасен (человек посередине не крутой). Если бы я был тобой, я бы добавил его в скрипт, который проверял бы ~/.ssh/known_hosts, если для этого хоста уже есть строка, и в этом случае я бы не добавил эту опцию.С другой стороны, если бы не было строки, я бы так и сделал;).

Если вы имеете дело с зашифрованной версией known_hosts, попробуйте с помощью

ssh-keygen -F hostname

Вот кое-что, что яна самом деле использую (функция получает следующие аргументы: user, host, source_file)

deployToServer() {
    echo "Deployng to $1@$2 from $3"
    if [ -z "`cat ~/.ssh/known_hosts | grep $2`" ] && [ -z "`ssh-keygen -F $2`" ]
    then
        echo 'Auto accepting SSH key'
        scp -oStrictHostKeyChecking=no $3* $1@$2:.
    else
        scp $3* $1@$2:.
    fi
}

Надеюсь, это помогло;)

1 голос
/ 03 октября 2011

Отпечаток ключа хоста ssh не должен меняться, если вы просто перезагрузите или остановите / запустите экземпляр. Если это так, то экземпляр / AMI настроен неправильно или происходит что-то еще (вредоносное?).

Хорошие AMI EC2 настроены для создания случайного ключа ssh хоста при первой загрузке. Большинство популярных AMI будут выводить отпечаток пальца на вывод консоли. В целях безопасности вы должны запросить вывод консоли экземпляра через API-интерфейс EC2 (инструмент командной строки или консоль) и сравнить его с отпечатком в приглашении ssh.

Говоря, что вы "не заботитесь об отпечатке пальца", вы говорите, что вам не нужно шифровать трафик между вами и экземпляром, и любой, кто находится между вами и экземпляром, может видеть это сообщение. Человек-посредник может даже принять сеанс ssh и получить доступ для управления вашим экземпляром.

С помощью ssh в Linux вы можете отключить проверку отпечатков пальцев с помощью командной строки или файла конфигурации. Я не решаюсь опубликовать, как это сделать, так как это не рекомендуется и серьезно снижает безопасность ваших соединений.

Лучше всего, чтобы ваши экземпляры настроили свой собственный ssh-ключ хоста на секретное значение, которое вы знаете. Вы можете сохранить открытую часть ключа ssh хоста в вашем известном файле hosts. Таким образом, ваш трафик зашифрован и безопасен, и вам не нужно постоянно отвечать на запрос об отпечатках пальцев при подключении к вашей собственной машине.

0 голосов
/ 30 сентября 2015

Я создал ожидаемый файл со следующими командами:

spawn ssh -i ec2Key.pem ubuntu @ ec2IpAddress ожидайте "Вы уверены, что хотите продолжить соединение (да / нет)?" {отправить "да \ n"} взаимодействовать

Мне удалось войти в консоль ec2 без отключения отпечатка пальца rsa. Моя машина была добавлена ​​к известным хостам этого ec2.

Надеюсь, это поможет.

...