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


11

Crea una chiave ssh:

$ ssh-keygen -t rsa P ""

Spostamento della chiave su chiave autorizzata:

$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

bash: /home/user/.ssh/authorized_keys: No such file or directory

Stessa domanda, perché è necessario aggiungere la chiave al proprio host?
Braiam,

@Braiam L'ho fatto quando la mia home directory era sull'unità di rete. Questo mi ha permesso di scrivere su qualsiasi macchina che montava questo disco. Quindi non stavo cacciando con il mio host.
FDinoff,

Risposte:


13
bash: /home/user/.ssh/authorized_keys: No such file or directory

Un elemento del percorso /home/user/.ssh/non esiste; la shell ( bash) controlla il reindirizzamento ( >>) prima di eseguire il comando ( cat). Se /home/useresiste e provi questo:

cat $HOME/.ssh/id_rsa.pub >> $HOME/test_this

Ora otterrai:

cat: /home/user/.ssh/id_rsa.pub: No such file or directory

Dal momento che quel file non può essere in quel posto, se /home/user/.ssh/non esistesse per cominciare.

Stai seguendo alcune istruzioni dopo aver eventualmente saltato alcuni bit. Per creare la directory:

mkdir $HOME/.ssh
chmod 700 $HOME/.ssh

Tuttavia, id_rsa.pubnon ci sarà. Sarà ovunque tu abbia eseguito il ssh-keygencomando in primo luogo.


6

Assicurarsi di aver effettuato l'accesso come utente per il quale si desidera creare prima la chiave ssh (o prepararsi a modificare i percorsi nel comando nella home directory corretta).

Quindi basta creare la directory:

mkdir ~/.ssh

Crea il file usando il catcomando che hai elencato sopra. Quindi non dimenticare di impostare correttamente le autorizzazioni:

chmod 400 ~/.ssh/authorized_keys

Si consiglia di assicurarsi che anche la directory .ssh disponga delle autorizzazioni appropriate.


1
Come suggerisce il tuo ultimo commento, sì, trovo che tu debba farlochmod 700 ~/.ssh
KCD l'

6

Se possibile, incoraggio sempre le persone a utilizzare lo strumento da riga di comando ssh-copy-id.

$ ssh-copy-id -h
Usage: /usr/bin/ssh-copy-id [-i [identity_file]] [user@]machine

Se vuoi solo copiare la tua chiave pubblica SSH predefinita su un server remoto devi semplicemente eseguire il seguente comando:

$ ssh-copy-id user@remoteserver

Vi mostro un vero esempio completo di come utilizzare questo strumento in questa domanda e risposta intitolato: Impossibile condividere una connessione ssh con rsync .


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.


o ovviamente puoi specificare di scrivere direttamente la chiave personalizzata nella cartella .ssh:-f ~/.ssh/custom-key-name
parlamento
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.