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

13

Создайте ключ 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
    
задан user282060 15.05.2014 в 21:50
источник

5 ответов

33

Впервые создать каталог .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-ключи !

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

ssh-copy-id [email protected]

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

    
ответ дан Louis Matthijssen 15.05.2014 в 22:14
1

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

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

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

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

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

chmod 600 ~/.ssh/authorized_keys
    
ответ дан KalenGi 07.01.2016 в 01:29
0

попробуйте

 touch $HOME/.ssh/authorized_keys

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

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

    
ответ дан DGA 15.05.2014 в 22:13
0

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

    
ответ дан Francisco Corrales Morales 04.09.2015 в 20:05
0

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

ssh [email protected]

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

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

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

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

    
ответ дан Shivam Sharma 28.07.2017 в 10:33