Предотвратить проверку подлинности known_hosts

0

Я использую phpseclib для подключения к только что созданному серверу. Он никогда не был связан с не будет отображаться в ~/.ssh/known_hosts. Чтобы предотвратить тайм-аут сценария, я хотел бы обойти предупреждение:

The authenticity of host 'xxx.xxx.xxx.xxx' can't be established.
RSA key fingerprint is xxx.
Are you sure you want to continue connecting (yes/no)?

Я знаю, что флаг OpenSSH может быть отключен для отключения проверки подлинности:

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no [email protected]

Это функция, которая пробилась в phpseclib?

Теги:
ssh
phpseclib

1 ответ

1
Лучший ответ

phpseclib не может и не проверяет подлинность хостов.

Что делает phpseclib, это позволяет вам получить общедоступный ключ сервера с помощью $ssh->getServerPublicHostKey(). Вы можете сделать это до входа на сервер, и вы можете сохранить ключ где-нибудь, будь то в БД или в файловой системе, и проверьте этот сохраненный ключ на будущих подключениях.

Я имею в виду, где бы phpseclib сохранить общедоступный ключ сервера сервера? Он не знает, есть ли у вас доступ к БД. Он не знает, доступна ли какая-либо из файловой системы. Я полагаю, что он мог бы использовать tempnam(), но, как вы сказали, что он делает при первоначальных соединениях? Предположим, что вы запускаете его через веб-браузер (а не CLI) и отображаете всплывающее окно js? И tempnam() не является постоянным. Предполагается ли вам повторно запрашивать вас каждый раз, когда /tmp удаляется файловой системой?

  • 0
    Я понимаю, что он не пытается проверить подлинность хостов, но почему мой CLI-скрипт показывает предупреждение проверки подлинности?
  • 0
    Поцарапайте это, кое-что еще вызывало проверку!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню