bash: /home/user/.ssh/authorized_keys: нет такого файла или каталога

11

Создайте ключ ssh:

$ ssh-keygen -t rsa P ""

Перемещение ключа на авторизованный ключ:

$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

bash: /home/user/.ssh/authorized_keys: No such file or directory
sknit
источник
Тот же вопрос, почему вам нужно добавить ключ к вашему собственному хосту?
Брайам
@Braiam Я сделал это, когда мой домашний каталог был на сетевом диске. Это позволило мне подключиться к любому компьютеру, на котором установлен этот диск. Так что я не шлёпался к своему хозяину.
FDinoff

Ответы:

13
bash: /home/user/.ssh/authorized_keys: No such file or directory

Элемент пути /home/user/.ssh/не существует; shell ( bash) проверяет перенаправление ( >>) перед выполнением команды ( cat). Если /home/userсуществует, и вы попробуйте это:

cat $HOME/.ssh/id_rsa.pub >> $HOME/test_this

Теперь вы получите:

cat: /home/user/.ssh/id_rsa.pub: No such file or directory

Поскольку этот файл не может быть в этом месте, если /home/user/.ssh/он не существует для начала.

Вы следуете некоторым инструкциям, возможно пропустив некоторые биты. Чтобы создать каталог:

mkdir $HOME/.ssh
chmod 700 $HOME/.ssh

Однако id_rsa.pubне будет там. Это будет где бы вы ни запускали ssh-keygenкоманду.

лютик золотистый
источник
6

Убедитесь, что вы вошли в систему как пользователь, для которого вы хотите сначала создать ключ ssh (или будьте готовы изменить пути в команде к правильному домашнему каталогу).

Затем просто создайте каталог:

mkdir ~/.ssh

Создайте файл с помощью catкоманды, которую вы перечислили выше. Тогда не забудьте правильно установить разрешения:

chmod 400 ~/.ssh/authorized_keys

Возможно, вы захотите убедиться, что каталог .ssh также имеет соответствующие разрешения.

111 ---
источник
1
Как следует из вашего последнего комментария, да, я считаю, что вам нужноchmod 700 ~/.ssh
KCD
6

Если возможно, я всегда призываю людей использовать инструмент командной строки ssh-copy-id.

$ ssh-copy-id -h
Usage: /usr/bin/ssh-copy-id [-i [identity_file]] [user@]machine

Если вы просто хотите скопировать открытый ключ SSH по умолчанию на удаленный сервер, просто выполните следующую команду:

$ ssh-copy-id user@remoteserver

Я показываю полный пример того, как использовать этот инструмент в этом разделе вопросов и ответов под названием: « Невозможно использовать ssh-соединение с rsync» .

SLM
источник
0

Это также может не сработать, если при создании ключа ssh-keygenвы даете ему имя файла. Я вошел какое - то название my-ssh-file-name, и он написал ключ /Users/MyUserNameвместо .sshпапки. Если вы оставите имя файла пустым, оно запишется .sshкак положено.

Франсиско Корралес Моралес
источник
или, конечно, вы можете указать, чтобы написать пользовательский ключ непосредственно в папку .ssh:-f ~/.ssh/custom-key-name
парламент