2012-05-09 21 views
8

Supponiamo che Mysql -dbs e un amministratore con una cattiva habbit per dimenticare le password (o paranoico abbastanza volere più autenticazione creativa, non solo password). È possibile accedere alla shell Mysql -root, ad esempio, in modo che l'agente Ssh memorizzi le chiavi private e quindi potrei semplicemente effettuare il login tramite "mysql -u root" (senza digitare le password o una combinazione di chiave privata e una password)?Accesso root di MySQL con chiave privata SSH?

risposta

7

È possibile utilizzare la normale autenticazione della chiave SSH per accedere all'account della shell e quindi utilizzare un file ~/.my.cnf con la propria password all'interno. Questo sarà usato di default dal client della riga di comando mysql.

Il suo contenuto dovrebbe essere:

[client] 
user=the_user_name 
password=the_password 

Attenzione che chiunque può leggere questo file sarà in grado di utilizzare tali credenziali. Proteggilo in modo che solo il proprietario possa leggerlo (e bloccare il terminale se ti allontani dalla tastiera).


Se si desidera l'autenticazione basata su chiave diretta, si potrebbe anche usare SSL client-certificate authentication. È possibile creare la propria CA di piccole dimensioni e rilasciarsi con questi certificati client. Un certo numero di strumenti supportano questo se si richiede l'accesso remoto diretto.

+1

+1. Ero a metà strada scrivendo questa risposta me stesso. –

+0

..precisamente, grazie! Oltre a loro, ho alcune idee come la configurazione di cose ssh-fs con gpg, devo pensare a proteggere il file con attenzione (sono su un sistema condiviso) - magari usando molti modi di autenticazione quindi non importa se perdi la password , idee? Forse ora l'ipersensibilità, indagando. – hhh

+1

Non necessariamente funzionerà con ssh-fs. Questo file verrà utilizzato dal client 'mysql' se è in esecuzione sulla macchina effettiva (e solo in forma non crittografata). (Si potrebbe ovviamente montare la home directory remota con ssh-fs e quindi specificare questo file di configurazione con il client locale 'mysql', ma questo sembra contorto). Conservare la password di root mysql in questo file nell'account root, se necessario. Per l'accesso remoto, il client-certs potrebbe essere un'opzione migliore (sebbene sia più coinvolta in termini di gestione). – Bruno