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

Це ж питання, чому вам потрібно додати ключ до власного хоста?
Брайам

@Braiam Я це робив, коли мій домашній каталог був на мережевому диску. Це дозволило мені перейти на будь-яку машину, на якій встановлено цей накопичувач. Тож я не схибився до власного господаря.
FDinoff

Відповіді:


13
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команду в першу чергу.


6

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

Тоді просто створіть каталог:

mkdir ~/.ssh

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

chmod 400 ~/.ssh/authorized_keys

Ви можете переконатися, що каталог .ssh також має відповідні дозволи.


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 .


0

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


або, звичайно, ви можете вказати, щоб написати спеціальний ключ у папку .ssh безпосередньо:-f ~/.ssh/custom-key-name
парламент
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.