Memorizzazione della password in un file di opzioni protetto
Se puoi fidarti [*] della sicurezza del computer remoto, puoi archiviare la password in un file di opzioni adeguatamente protetto, come suggerito nel capitolo Linee guida per l'utente finale per la sicurezza della password del manuale, senza la necessità di comunicare ssh
o digitare ogni tempo.
In particolare è possibile aggiungere una riga nella sezione [client] del file .my.cnf
nella home directory:
[client]
password=your_pass
Ovviamente devi impedire che quel file sia accessibile a chiunque tranne te stesso, impostando la modalità di accesso al file su 400 o 600 con, ad es.
chmod 600 ~/.my.cnf
Quindi puoi usare qualcosa di simile
ssh user@server 'mysql -u user110971 --defaults-file=/home/user110971/mysql-opts'
dov'è user110971
il nome utente del tuo account.
Costringere ssh ad allocare una pseudo tty ( ssh -t
)
Questo problema si verifica ogni volta che si invia un comando ssh
e è necessario inserire l'input perché, per impostazione predefinita, ssh
non alloca una pseudo-tty.
È possibile forzare l'allocazione tty con l'opzione -t
, (anche più di una se necessario):
-t
Forza l'allocazione pseudo-tty. Questo può essere usato per eseguire programmi arbitrari basati su schermo su una macchina remota, il che può essere molto utile, ad esempio quando si implementano servizi di menu. Le -t
opzioni multiple impongono l'allocazione di tty, anche se ssh non ha tty locale.
Come potete leggere in questo post Debian (Jul_11_2008) su sudo
, è una vecchia questione che ama ripetersi:
ssh user@server "sudo ls"
password: password
E ti viene mostrata la password
La soluzione è forzare ssh ad allocare una pseudo-tty, con il flag -t:
ssh -t user@server sudo ls
Nota:
[*] Se puoi affidarti a lasciare la password in un file accessibile solo da te e root sulclient di lavoro .
Se è possibile riavviare il computer remoto cambiando il sistema operativo o rimuovere l'HDD, il computer non può essere considerato completamente sicuro ... ma in tal caso il database stesso non sarà sicuro.