1

Когда я пытаюсь создать ключ SSH с помощью sudo ssh-keygen -t rsa я получаю запрос:

Enter file in which to save the key (/root/.ssh/id_rsa):

Однако я бы хотел, чтобы файл был сохранен в /home/user2/.ssh/id_rsa . Когда я вхожу в этот каталог, я получаю эту ошибку:

Saving key "/home/user2/.ssh/id_rsa" failed: No such file or directory

Любая попытка войти в другой каталог возвращает ошибку.

Как я могу сгенерировать ключ в /home/user2/.ssh/id_rsa?

РЕДАКТИРОВАТЬ: когда я удаляю sudo я получаю эту проблему:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/hduser/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Saving key "/home/hduser/.ssh/id_rsa" failed: Not a directory

Но разве SSH не должен создавать каталог?

1 ответ1

1

Когда я пытаюсь создать ключ SSH с помощью sudo ssh-keygen -t rsa я получаю запрос:

Enter file in which to save the key (/root/.ssh/id_rsa):

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

Чтобы создавать файлы, принадлежащие вам (и использовать ваши собственные пути и т.д.), Просто не используйте sudo .

И если использование sudo приводит к странным ошибкам в разрешении, лучше исследуйте и исправьте их - они не будут спокойно исправляться, если вы просто sudo ; часто это только ухудшит.

когда я удаляю sudo, я получаю эту проблему:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/hduser/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Saving key "/home/hduser/.ssh/id_rsa" failed: Not a directory

Но разве SSH не должен создавать каталог?

Должно. Но на самом деле сообщение об ошибке означает, что /home/hduser/.ssh уже существует - это просто нечто большее, чем каталог. Это может быть файл, битая символическая ссылка, символическая ссылка на файл и т.д.

Еще раз: исследуйте ситуацию. Чтобы увидеть, что такое .ssh , запустите на нем ls -ld . При необходимости переименуйте файл / ссылку / элемент или полностью удалите его.

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