Сохранение ключа SSH дома вместо root

503
steve zissou

Когда я пытаюсь создать ключ 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
Существует ли каталог `/ home / user2 / .ssh /`? Kamil Maciorowski 5 лет назад 0
Почему вы называете это `sudo`? gronostaj 5 лет назад 1
@KamilMaciorowski Я думал, что .ssh будет создан автоматически? steve zissou 5 лет назад 0
@gronostaj Я не уверен, я получил это из руководства, я отредактирую свой вопрос, чтобы дать вывод всякий раз, когда я не использую `sudo` steve zissou 5 лет назад 0

1 ответ на вопрос

1
grawity

Когда я пытаюсь создать ключ 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на нем. При необходимости переименуйте файл / ссылку / элемент или полностью удалите его.

Спасибо! Это сработало, когда я удалил файл. Кстати, как `ls -ld` говорит мне, что это за файл на самом деле. разве `.` перед именем файла не говорит мне, что это скрытый каталог? steve zissou 5 лет назад 0
Нет. `.` перед именем файла только говорит вам, что это скрытое _something_, но никоим образом не подразумевает, что это каталог. Фактический тип элемента - это 1-й символ вывода ls -l (до индикаторов разрешений). grawity 5 лет назад 0

Похожие вопросы