ssh: подлинность хоста "имя хоста" не может быть установлена
когда я по SSH к машине, когда я получаю это предупреждение об ошибке и предлагает сказать "да" или "нет". Это вызывает некоторые проблемы при запуске из скриптов, которые автоматически SSH на другие машины.
Предупреждение:
The authenticity of host '<host>' can't be established.
ECDSA key fingerprint is SHA256:TER0dEslggzS/BROmiE/s70WqcYy6bk52fs+MLTIptM.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'pc' (ECDSA) to the list of known hosts.
есть ли способ автоматически сказать " да " или игнорировать это?
12 ответов:
в зависимости от вашего ssh-клиента, вы можете установить параметр StrictHostKeyChecking в no в командной строке и/или отправить ключ в файл null known_hosts. Вы также можете установить эти параметры в файле конфигурации, либо для всех хостов и по заданному набору IP-адресов или имен хостов.
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no
EDIT
Как отмечает @IanDunn, для этого существуют риски безопасности. Если ресурс, к которому вы подключаетесь, был подделан злоумышленником, они могут потенциально воспроизвести вызов конечного сервера обратно к вам, обманывая вас, думая, что вы подключаетесь к удаленному ресурсу, в то время как на самом деле они подключаются к этому ресурсу с вашими учетными данными. Вы должны тщательно рассмотреть, является ли это подходящим риском, прежде чем изменять механизм подключения, чтобы пропустить проверку Хоста.
старый вопрос, который заслуживает лучшего ответа.
вы можете предотвратить интерактивное приглашение без отключения
StrictHostKeyChecking
(что небезопасно).включите в свой скрипт следующую логику:
if [ -z `ssh-keygen -F $IP` ]; then ssh-keyscan -H $IP >> ~/.ssh/known_hosts fi
Он проверяет, если открытый ключ сервера
known_hosts
. Если не запрашивает открытый ключ с сервера и добавляет его вknown_hosts
.таким образом, вы подвергаетесь атаке человека в середине только один раз, что может быть смягчено на:
- обеспечение первого подключения скрипта по защищенному каналу
- проверка журналов или known_hosts для проверки отпечатков пальцев вручную (выполняется только один раз)
чтобы отключить (или отключить управление), добавьте следующие строки в начало
/etc/ssh/ssh_config
...Host 192.168.0.* StrictHostKeyChecking=no UserKnownHostsFile=/dev/null
варианты:
- подсеть хоста может быть
*
разрешить неограниченный доступ ко всем IP-адресам.- Edit
/etc/ssh/ssh_config
для глобальной конфигурации или~/.ssh/config
для пользовательской конфигурации.см http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html
похожие вопрос по теме superuser.com -смотрите https://superuser.com/a/628801/55163
отредактируйте файл конфигурации, обычно расположенный в'~/.ssh / config', и в начале файла, добавьте следующие строки
Host * User your_login_user StrictHostKeyChecking no IdentityFile ~/my_path/id_rsa.pub
пользователь установлен в
your_login_user
говорит, что эти настройки принадлежат your_login_user
StrictHostKeyChecking установлен в no позволит избежать приглашения
IdentityFile-это путь к ключу RSAэто работает для меня и моих скриптов, удачи вам.
лучший способ сделать это-использовать ' BatchMode 'в дополнение к'StrictHostKeyChecking'. Таким образом, ваш скрипт примет новое имя хоста и запишет его в файл known_hosts, но не потребует вмешательства yes/no.
ssh -o BatchMode=yes -o StrictHostKeyChecking=no user@server.example.com "uptime"
данное предупреждение возникает из-за функции безопасности, не отключайте эту функцию.
он просто отображается один раз.
если он все еще появляется после второго подключения, проблема, вероятно, в письменной форме . В этом случае вы также получите следующее сообщение:
Failed to add the host to the list of known hosts
вы можете исправить это путем изменения владельца изменение разрешения файла для записи.
sudo chown -v $USER ~/.ssh/known_hosts
со ссылкой на ответ Кори, я изменил его и использовал ниже команду, которая работает. Без
exit
, оставшаяся команда фактически входила в удаленную машину, которую я не хотел в scriptssh -o StrictHostKeyChecking=no user@ip_of_remote_machine "exit"
Как правило, эта проблема возникает, когда вы изменяете ключи очень часто. На основе сервера может потребоваться некоторое время для обновления нового ключа, который вы создали и вставили на сервере. Поэтому после генерации ключа и вставить в сервер, подождите от 3 до 4 часов, а затем попробовать. Проблема должна быть решена. Это случилось со мной.
этого -> chmod +w ~/.ssh / known_hosts Это добавляет запись в файл ~/.ssh / known_hosts. После этого удаленный хост будет добавлен в файл known_hosts при следующем подключении к нему.
в идеале, вы должны создать самоуправляемый центр сертификации. Начните с создания пары ключей:
ssh-keygen -f cert_signer
затем подпишите открытый ключ хоста каждого сервера:
ssh-keygen -s cert_signer -I cert_signer -h -n www.example.com -V +52w /etc/ssh/ssh_host_rsa_key.pub
это создает подписанный открытый ключ хоста:
/etc/ssh/ssh_host_rsa_key-cert.pub
на
/etc/ssh/sshd_config
, точкаHostCertificate
в этот файл:HostCertificate /etc/ssh/ssh_host_rsa_key-cert.pub
перезапустите службу sshd:
service sshd restart
затем на SSH-клиенте добавьте следующее в
~/.ssh/known_hosts
:@cert-authority *.example.com ssh-rsa AAAAB3Nz...cYwy+1Y2u/
выше содержит:
@cert-authority
- домен
*.example.com
- полное содержимое открытого ключа
cert_signer.pub
The
cert_signer
открытый ключ будет доверять любому серверу, чей открытый ключ хоста подписанcert_signer
закрытый ключ.хотя это требует одноразовой настройки на стороне клиента, вы можете доверять нескольким серверам, включая те, которые еще не были подготовлены (пока вы подписываете каждый сервер, это есть.)
для получения более подробной информации см. этой странице.
Я решаю проблему, которая дает ниже написанную ошибку:
Ошибка:
Подлинность сервера ХХХ.ХХХ.ХХХ не может быть установлено.
Ключ RSA отпечатков пальцев 09:6С:эф:компакт-диск:55:С4:4Ф:СС:5а:88:46:0а:А9:27:83:89.устранение:
1. установите любой инструмент openSSH.
2. выполнить команду ssh
3. он попросит сделать и добавить этот хост, как. примите да.
4. Этот узел будет добавлен в список известных хостов.
5. Теперь вы можете подключиться к этому хозяин.Это решение работает сейчас......