Sto provando a configurare l'autenticazione ssh con file chiave anziché nome utente / password. Il client è un box di Windows che esegue PuTTY e il server è un server Ubuntu 12.04 LTS.
Ho scaricato puttygen.exe e ho generato una coppia di chiavi. In /etc/ssh/sshd_configho questa linea:
AuthorizedKeysFile %h/.ssh/authorized_keys
e sul file della chiave pubblica del mio client dice questo:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "my@email.address.com"
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAr3Qo6T5XU06ZigGOd3eKvfBhFLhg5kWv8lz6
qJ2G9XCbexlPQGanPhh+vcPkhor6+7OmB+WSdHeNO652kTofnauTKcTCbHjsT7cJ
GNrO8WVURRh4fabknUHPmauerWQZ6TgRPGaz0aucU+2C+DUo2SKVFDir1vb+4u83
AV1pKxs=my@email.address.com
---- END SSH2 PUBLIC KEY ----
Ho copiato la parte da "ssh-rsa AAA" a "my@email.address.com" e l'ho inserita nel file ~/.ssh/authorized_keyssul mio server (nella mia cartella home). In PuTTY in Connessione> SSH> Auth ho inserito il percorso della chiave privata generata sul mio client e salvato le impostazioni della sessione.
Ho riavviato il server SSH con
sudo service ssh restart
Ora se carico il profilo in PuTTY (ho verificato che la chiave privata è ancora in Connessione> SSH> Auth e che il percorso è corretto) ed eseguo il profilo, si dice
Server refused our key
Ho provato a mettere la chiave pubblica in un file nella directory ./ssh/authorized_keys/ ma non mi è stato di aiuto, quindi l'ho usata ./ssh/authorized_keyscome file , incollando la chiave in essa. Ho anche provato a generare una coppia di chiavi privata / pubblica sul server, inserendo la chiave pubblica ./ssh/authorized_filese caricando quella privata in PuTTY sul mio client. Il riavvio del server non ha aiutato neanche.
Ho scoperto che l'errore può essere risolto inserendo la chiave in un luogo esterno alla cartella principale dell'utente, ma è utile solo se la cartella principale è crittografata, cosa che non lo è.
Ho anche provato a generare una chiave a 4096 bit, pensando che forse 1024 era troppo corto.
Come posso farlo funzionare? Grazie!
MODIFICARE:
Ok, ha /var/log/auth.logdetto:
sshd: Authentication refused: bad ownership or modes for directory /home/vorkbaard/.ssh
Google mi dice che ~/.ssh/dovrebbe essere 700 e ~/.ssh/authorized_keysdovrebbe essere 600, quindi l'ho fatto. Ora /var/log/auth.logdice:
sshd: error: key_read: uudecode AAAAB3N [etc etc etc until about 3/4 of my public key]
sshd: error: key_read: uudecode AAAAB3Nquell'erroreauth.log?