bash: /home/user/.ssh/authorized_keys: Немає такого файлу чи каталогу


30

Створіть ключ ssh:
Command:

ssh-keygen -t rsa –P ""

Переміщення ключа до авторизованого ключа:
Command:

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 для власної машини.
Nehal J Wani

Не публікуйте те саме запитання на кількох сайтах мережі 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-ключів !


Як згадував тердон, ви також можете просто використовувати цю команду:

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

Оскільки у мене недостатньо репутації, я додаю це сюди. Окрім відповіді Луї Маттійссена, якщо ви все ще не можете увійти через 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.