2

У меня есть 2 машины с Linux: мой NAS дома и сервер вне сайта.

Назовите мой NAS как "NAS", а офсетный сервер "SRV".

Мне нужно иметь возможность безопасно копировать файлы из SRV в NAS, не вводя пароль. SRV запускает Ubuntu 14.04, поэтому я могу запустить ssh-keygen . NAS работает под управлением другой версии Linux (я не могу понять, что. cat /etc/*-release и lsb-release -a оба не работают). NAS имеет ssh-keygen но не ssh-copy-id и я не хочу устанавливать на NAS дополнительное программное обеспечение, так как у других были проблемы с этим.

Здесь путаница. Я запускаю ssh-keygen и на машине генерируются 2 файла. Я не совсем уверен, что это за файлы и какой из них мне следует распространять. Другое дело, на какой машине я запускаю ssh-keygen ? Логика подсказывает, что если я хочу войти в NAS с SRV, я должен запустить команду на SRV, но какое чтение я сделал, предполагает, что это может быть наоборот?

Вот что я сделал до сих пор:

Я вошел в NAS с пользователем, которого я хочу SSH как. Я запустил ssh-keygen и скопировал файл id_rsa.pub в ~/.ssh/authorized_keys на SRV. Затем я попытался SSH из SRV в NAS, но он попросил пароль. Затем я попытался SSH из SRV в NAS, указав идентификационный файл, используя ssh user@NAS -i ~/.ssh/authorized_keys/id_rsa.pub но он все же попросил пароль.

Не уверен, что я делаю не так. Похоже, это должен быть очень простой процесс, поэтому я, очевидно, что-то делаю неправильно или использовал неправильные параметры SSH.

2 ответа2

2

Вы на правильном пути, у вас это просто задом наперед.

Когда вы делаете ssh-keygen вы генерируете пару открытых и закрытых ключей. Закрытый ключ никогда не должен покидать устройство, на котором он создан, а открытый ключ должен распространяться на любой сервер, на который вы хотите войти, используя ключи.

Таким образом, ssh-keygen должен быть запущен на SRV, а созданный файл id_rsa.pub должен быть скопирован в ~/.ssh/authorized_keys на NAS в домашнем каталоге пользователя, в который вы входите как.

Если этот файл создан недавно (или в любом случае), убедитесь, что его разрешения ограничены только владельцем:

 chmod 600 ~/.ssh/authorized_keys
0

То, что я прочитал, вы сделали все правильно. Если он не работает, попробуйте очистить файл known_hosts затем сгенерируйте новый ключ ssh и добавьте его в authorized_keys ключи. Это должно решить вашу проблему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .