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


30

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

1
~/.ssh/authorized_keysявляются ключами других компьютеров, к которым вы подключены / доверяете, а не своим собственным ключом.
saiarcot895

Некоторые приложения требуют ssh без пароля на свой компьютер.
Нехал Дж Вани

Пожалуйста, не размещайте один и тот же вопрос на нескольких сайтах сети Stack Exchange.
Тердон

Почему вам нужно доверять ключу, которым вы владеете? Что именно вы пытаетесь сделать?
Брайам

Ответы:


74

Вы должны создать .sshкаталог и authorized_keysфайл в первый раз.

  1. Создайте .sshкаталог:

    mkdir ~/.ssh
    
  2. Установите правильные разрешения:

    chmod 700 ~/.ssh
    
  3. Создайте authorized_keysфайл:

    touch ~/.ssh/authorized_keys
    
  4. Установите правильные разрешения:

    chmod 600 ~/.ssh/authorized_keys
    

Разрешения важны! Это не будет работать без правильных разрешений!

Теперь вы можете добавить открытый ключ к authorized_keysфайлу:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

Вы должны добавить открытый ключ вашего компьютера в authorized_keysфайл компьютера, к которому вы хотите получить доступ, используя SSH Keys !


Как упомянул тердон, вы также можете просто использовать эту команду:

ssh-copy-id user@host

Это поместит ваш id_rsa.pub(в ваш ~/.sshкаталог) в authorized_keysфайл удаленного компьютера , создавая .sshкаталог и authorized_keysфайл с необходимыми разрешениями, если это необходимо.


5
В любом случае, вы не хотите просто catтак, вот для чего ssh-copy-id.
Тердон

1
Вау, круто, я добавил это.
Луи Матейссен

@LouisMatthijssen Я скопировал ключи на мой удаленный сервер. Как я могу подтвердить, что открытый ключ добавлен в авторизованные ключи.
Аман

2

Если вам был отправлен открытый ключ по электронной почте для установки на удаленный сервер:

1) SSH на сервер. Я использовал PuTTY на Windows.

2) Настройте ключ:

mkdir ~/.ssh
chmod 700 ~/.ssh
vi ~/.ssh/authorized_keys

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

chmod 600 ~/.ssh/authorized_keys

2

Поскольку у меня недостаточно репутации, я добавляю это сюда. В дополнение к ответу Louis Matthijssen, если вы все еще не можете войти через ssh как созданный вами пользователь, например

ssh username@host

это может быть связано с отсутствием разрешения владельца, которое необходимо добавить в папку /home/username/.ssh. У меня была такая же проблема, и вы можете дать это разрешение как:

chown -R username:username /home/username/.ssh

Это может произойти просто потому, что вы создавали каталог и устанавливали права доступа как root , а не как имя пользователя, с которым вы хотите получить доступ к серверу.

Надеюсь, это кому-нибудь поможет.


0

пытаться

 touch $HOME/.ssh/authorized_keys

создать пустой файл с правами этого пользователя.

Этот файл создается при доступе к первому удаленному хосту с этим пользователем.


0

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.