Come risolvere il login ssh che inizia a chiedere la password e 'ls .ssh' è permesso negato?

1

Uso il mio Mac per accedere agli host remoti tramite Terminal.app utilizzando ssh e le chiavi memorizzate locali a.k.a. login senza password a.k.a accesso alla chiave di autenticazione.

All'improvviso i nuovi tentativi di accesso di ssh sono:

  1. chiedendo la password, dove prima gli accessi erano privi di password
  2. return The authenticity of host XYZ can't be established.
  3. yes answering Are you sure you want to continue connecting (yes/no)?
    risultati in Failed to add the host to the list of known hosts (/Users/user/.ssh/known_hosts) .

Anche ls ~/.ssh ha come risultato "Autorizzazione negata":

ls: authorized_keys: Permission denied
ls: config: Permission denied
ls: id_rsa: Permission denied
ls: id_rsa.pub: Permission denied
ls: known_hosts: Permission denied

Come risolvere questo problema?

    
posta Pro Backup 28.11.2016 - 19:57
fonte

1 risposta

1

Autorizzazioni file errate

Le autorizzazioni errate sono impostate su alcuni file all'interno della cartella .ssh. Dai un'occhiata a Terminal.app:

$ sudo ls -l ~/.ssh
-rw-r--r--+ 1 user  staff    393 27 nov 19:08 authorized_keys
-rw-r--r--+ 1 user  staff     16 26 apr  2016 config
-rw-------@ 1 user  staff   1743 16 sep  2008 id_rsa
-rw-r--r--@ 1 user  staff    400 16 sep  2008 id_rsa.pub
-rw-r--r--@ 1 user  staff  36654 26 nov 17:02 known_hosts

La prima colonna ( -rw-r--r-- ) visualizza le autorizzazioni di file unix assegnate per proprietario, gruppo e altri.

Le autorizzazioni di lettura per il gruppo e altre non sono consentite

Il vero problema qui non è il primo r sulle colonne posizione 2, ma il r è in posizione 5 e 8. Questo indica che il gruppo e gli altri hanno le autorizzazioni di lettura per questi file. E che il permesso di lettura per gli altri, quindi il proprietario del file, non è permesso.

Fix

Può essere risolto rimuovendo tutti i diritti dal gruppo e tutti utilizzano il comando chmod 600 filename . Per questo caso specifico, un comando funzionante è:

$ sudo chmod 600 ~/.ssh/{authorized_keys,config,id_rsa.pub,known_hosts}

Risultato

Dopo aver eseguito questo comando, i nuovi permissons assomigliano a questo:

$ ls -l ~/.ssh
total 104
-rw-------+ 1 user  staff   393B 27 nov 19:08 authorized_keys
-rw-------+ 1 user  staff    16B 26 apr  2016 config
-rw-------+ 1 user  staff   1,7K 16 sep  2008 id_rsa
-rw-------+ 1 user  staff   400B 16 sep  2008 id_rsa.pub
-rw-------+ 1 user  staff    36K 26 nov 17:02 known_hosts 

Nota: il comando ls ora viene eseguito senza sudo .

    
risposta data 28.11.2016 - 19:57
fonte

Leggi altre domande sui tag