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