Подтвердить что ты не робот

Невозможно установить подлинность хоста "github.com(192.30.252.128)"

Я пытаюсь использовать

sudo npm install

чтобы установить все мои зависимости для приложения, написанного в nodejs. Моя ОС - Ubuntu 13.04

Однако я продолжаю получать это предупреждение:

The authenticity of host 'github.com (192.30.252.131)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:1d:52:13:1a:21:2d:bz:1d:66:a8.
Are you sure you want to continue connecting (yes/no)?

Кто-нибудь сталкивался с этим предупреждением раньше? Возможно ли аутентификация и хранение отпечатка пальца локально? Поэтому мне не нужно будет снова аутентифицироваться, когда я вхожу в sudo npm install в другой раз.

Сейчас я не могу ничего вводить, даже "да". Мой терминал просто застревает, мне нужно нажать ctrl + c, чтобы завершить.

4b9b3361

Ответ 1

Опасность впереди, если вы на самом деле не заботитесь о безопасной связи с github в своем локальном аккаунте

Ssh справедливо жалуется, что не может убедиться, что вы действительно подключаетесь к серверу github через безопасный канал. Возможно, именно поэтому github рекомендует https-доступ, который работает из-за коробки благодаря инфраструктуре открытого ключа.

Теперь вы можете заставить его работать, но имейте в виду, что он включает кэширование отпечатка открытого ключа, который, если он выполняется неправильно, обеспечивает атакующую постоянную атаку "человек в середине".

Как безопасно продолжить?

Вариант 1 использует https url вместо ssh.

Вариант 2 имеет доступ к работе ssh.

Хорошо, покажи мне вариант 2

Сделайте ssh github.com, но не просто введите "да". Проверьте, отображается ли отображаемый хеш, который соответствует одному из хэшей, представленному в https://help.github.com/articles/what-are-github-s-ssh-key-fingerprints/ (в вашем вопросе он показывает, и страница выводится через https для того же причины инфраструктуры открытого ключа).

Если хеш соответствует, тогда соединение действительно безопасно, вы можете ответить "да" на вопрос ssh.

Хорошо, я проверил и набрал да, как я знаю, что он работает?

Ssh покажет что-то вроде:

Предупреждение. Постоянно добавлен ключ хоста RSA для IP-адреса '192.30.252.128' в список известных хостов.

После этого вы увидите сообщение типа

Разрешение отклонено (публикация).

что хорошо, но показывает, что вам нужна дополнительная настройка, или просто

Привет, ваш логин! Вы успешно прошли аутентификацию, но GitHub не предоставить доступ к оболочке.

что означает, что все работает хорошо, и вы можете повторить свою первую операцию.

Обратите внимание, что если вы повторите попытку с той же командой ssh, он больше не будет задавать вопрос.

Ответ 2

Запустите ssh -o StrictHostKeyChecking=no [email protected] в командной строке, чтобы добавить аутентификацию к вашим known_hosts. Тогда вы не получите приглашение в следующий раз.

Ответ 3

Github только что внесла изменения в свою инфраструктуру ip-адресов. Вы можете прочитать здесь для более подробной информации https://github.com/blog/1606-ip-address-changes. Кроме того, я никогда раньше не видел такой проблемы. Является ли package.json с git параметром, клонированным через ssh?

Попробуйте эхо "да" | sudo npm install. Это может решить вашу проблему. Если это не так, попробуйте клонирование через HTTPS вместо этого или загрузите модуль в качестве tarball вместо этого, что можно сделать следующим образом https://api.github.com/repos/ имя пользователя/ reponame/тарболом

Ответ 4

Вы уверены, что вы случайно не вошли в систему как другой пользователь (это происходит со мной, когда я sudo -s/login как root и забыл, что моя учетная запись GitHub не связана с этим пользователем).

Ответ 5

Я приземлился здесь, потому что я получил эту ошибку и не понимаю, почему. Оказывается, в моей команде npm была опечатка:

npm install -P -E @angular/common @angular/compiler @angular/core @angular/forms 
@angular/platform-browser @angular/router @angular/[email protected] angular/platform-browser-dynamic

Обратите внимание, как конец строки читается как @angular/[email protected]/platform-browser-dynamic.

NPM интерпретирует последний "пакет" как репозиторий github, и именно отсюда возникает ошибка.

Я знаю, что это на самом деле не отвечает на вопрос, но я поднимаю его на тот случай, если кто-то еще столкнется с этим, совершив аналогичную ошибку.

Ответ 6

Запустите ssh github.com и введите yes, и он должен выйти из строя. Затем запустите команду еще раз. Если не попробовать ssh github.com снова, поскольку у них есть несколько IP-адресов, и вам могут понадобиться все они.