bash: /home/user/.ssh/authorized_keys: nessun file o directory


30

Crea una chiave ssh:
Comando:

ssh-keygen -t rsa –P ""

Spostamento della chiave in chiave autorizzata:
Comando:

cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
bash: /home/user/.ssh/authorized_keys: No such file or directory

1
~/.ssh/authorized_keyssono le chiavi di altri computer che si è connessi alla fiducia /, non la propria chiave.
saiarcot895,

Alcune applicazioni richiedono ssh senza password per la propria macchina.
Nehal J Wani,

Non pubblicare la stessa domanda su più siti della rete Stack Exchange.
terdon,

Perché devi fidarti della chiave che possiedi? Esattamente cosa stai cercando di fare?
Braiam,

Risposte:


74

Devi creare la .sshdirectory e il authorized_keysfile la prima volta.

  1. Crea la .sshdirectory:

    mkdir ~/.ssh
    
  2. Imposta le autorizzazioni giuste:

    chmod 700 ~/.ssh
    
  3. Crea il authorized_keysfile:

    touch ~/.ssh/authorized_keys
    
  4. Imposta le autorizzazioni giuste:

    chmod 600 ~/.ssh/authorized_keys
    

Le autorizzazioni sono importanti! Non funzionerà senza le giuste autorizzazioni!

Ora puoi aggiungere la chiave pubblica al authorized_keysfile:

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

Devi aggiungere la chiave pubblica del tuo computer al authorized_keysfile del computer a cui vuoi accedere usando le chiavi SSH !


Come menzionato terdon, puoi anche usare questo comando:

ssh-copy-id user@host

Ciò inserirà il tuo id_rsa.pub(nella tua ~/.sshdirectory) nel authorized_keysfile del computer remoto , creando la .sshdirectory e il authorized_keysfile con le autorizzazioni giuste, se necessario.


5
In ogni caso, non vuoi proprio catfarlo, ecco a cosa ssh-copy-idserve.
terdon,

1
Caspita, l'ho aggiunto.
Louis Matthijssen,

@LouisMatthijssen Ho copiato le chiavi sul mio server remoto. Come posso confermare che la chiave pubblica è stata aggiunta in authorized_keys.
Aman

2

Nel caso in cui ti sia stata inviata la chiave pubblica in un'e-mail per l'installazione su un server remoto:

1) SSH nel server. Ho usato PuTTY su Windows.

2) Imposta il tasto:

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

Assicurati di copiare esattamente la chiave e incollarla in una nuova riga nella finestra dell'editor. Verifica che occupi una sola riga e salva.

chmod 600 ~/.ssh/authorized_keys

2

Dal momento che non ho abbastanza reputazione, lo sto aggiungendo qui. Oltre alla risposta di Louis Matthijssen se non sei ancora in grado di accedere tramite ssh come utente che hai creato, come

ssh username@host

quindi ciò potrebbe essere dovuto all'assenza dell'autorizzazione del proprietario che è necessario aggiungere alla cartella /home/username/.ssh. Ho avuto lo stesso problema e puoi concedere questa autorizzazione come:

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

Questo può probabilmente accadere semplicemente perché stavi creando la directory e impostando le autorizzazioni come root , ma non come nome utente con cui vuoi accedere al server.

Spero che questo aiuti qualcuno.


0

provare

 touch $HOME/.ssh/authorized_keys

per creare file vuoti con i diritti di quell'utente.

Questo file viene creato quando si accede per primo a un host remoto con quell'utente.


0

Questo può anche fallire se, quando si crea la chiave con ssh-keygen, si assegna un nome file. Ho inserito un nome my-ssh-file-namee ha scritto la chiave /Users/MyUserNameinvece della .sshcartella. Se si lascia vuoto il nome file, verrà scritto .sshcome previsto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.