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

Создайте ключ 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 

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

Элемент пути /home/user/.ssh/ не существует; оболочка ( 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 .

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

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

 mkdir ~/.ssh 

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

 chmod 400 ~/.ssh/authorized_keys 

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

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

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

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

 $ ssh-copy-id user@remoteserver 

Я показываю фактический полный пример того, как использовать этот инструмент в этом Q & A под названием « Нельзя использовать ssh-соединение с rsync .

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