Системный файл известных хостов?

Системный файл известных хостов?

Я пытаюсь сделать github-гит тянутьиз скрипта php как пользователь www-data и получаю сообщение "Проверка ключа хоста не удалась". У моего основного пользователя зарегистрирован ключ хоста, но у моего www-data его нет, так как у него даже нет доступа к каталогу ~/.ssh.

Есть ли еще общесистемный файл known-hosts в Ubuntu 18.04? Я полагаю, что было бы небезопасно давать пользователю www-data доступ к моему~/.ssh-каталог?

решение1

Как предположил @GMaster, использование HTTPS вместо SSH для автоматизированного pull кажется наиболее разумным выбором. Но если вам действительно необходимо использовать протокол ssh (зачем?), у вас есть несколько вариантов known_hostsи учетных данных:

  • Создайте ~/.sshдерево, включая предварительно заполненный known_hosts, в www-dataдомашнем каталоге (в моей системе это /var/www, но проверьте свой в /etc/passwd). Вы можете создать файл самостоятельно, подключившись и проверив ключ хоста вручную. Просто убедитесь, что такие файлы и каталоги имеют соответствующие разрешения (обычно 0700/0600) и владельца.

  • Разместите этот файл в другом месте (с соответствующими разрешениями) и укажите на него с помощью-o UserKnownHostsFile=/path/to/known_hosts

  • Для обоих подходов попробуйте -o StrictHostKeyCheckingразные варианты и -o UpdateHostKeysнайдите баланс между безопасностью и удобством.

  • В крайнем случае вы можете полностью отключить проверку ключа хоста для www-data, либо в /var/www/.ssh/configпараметрах командной строки, либо с помощью них -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null. Просто помните о серьезных последствиях для безопасности, которые это подразумевает.

И, подтверждая то, что вы уже подозревали: ни при каких обстоятельствах не давайте www-data (или любому другому) пользователю доступ к вашему ~/.ssh. Помните о вашемчастныйключи тоже там!

решение2

Да, действительно есть общесистемный файл известных хостов, который по умолчанию /etc/ssh/ssh_known_hosts. Вы можете запустить man ssh_configи выполнить поиск, GlobalKnownHostsFileчтобы увидеть значение по умолчанию в вашей системе. Вы также можете изменить значение этой опции на обычное (с -o), если хотите.

Связанный контент