Ci sono molte informazioni contrastanti che ho letto ogni volta che cerco informazioni sull'utilizzo di ssh-agent
(processo di salvataggio / riutilizzo della passphrase) in Mac OS X. La maggior parte delle risorse sembra suggerire che il semplice rilascio di ssh-add -K
ti consentirà di memorizzare la passphrase e configurerà automaticamente OS X per lanciare ssh-agent
automaticamente e carica la tua passphrase memorizzata.
Nota: l'esecuzione di ssh-add -K
funzionerà solo se il tuo file di chiave privata è in una delle posizioni comuni, quelle posizioni sono limitate a: ~/.ssh/id_rsa
, ~/.ssh/id_dsa
, ~/.ssh/identity
. Se il file si trova in un altro punto, devi specificare quel percorso dopo il -K nel comando precedente.
Il motivo per cui si ottiene la finestra di dialogo passphrase del file chiave quando ci si collega al secondo server (senza chiave) è probabile perché la configurazione predefinita dei server SSH è quella di utilizzare prima l'autenticazione a chiave pubblica e l'autenticazione "interattiva tastiera" secondo.
Poiché hai una chiave pubblica con un nome / percorso standard ( ~/.ssh/id_rsa
), il tuo client OpenSSH invia la chiave privata in modo utile per consentire al server di confrontarlo con un file authorized_keys
consentito.
Ci sono una manciata di modi per prevenire questo, i due più facili sono passare un flag sulla riga di comando, o aggiungerlo come un elemento di configurazione permanente nel tuo file ~/.ssh/config
.
-
Quando ci si connette al server secondario / senza chiave, è possibile aggiungere -o "PubkeyAuthentication = no" durante la connessione. Qualcosa come ssh -o "PubkeyAuthentication=no" me@devserver2
.
-
Apri ~/.ssh/config
nel tuo editor di testo preferito, crealo prima se necessario e inserisci quanto segue:
Host devserver2
User me
PubkeyAuthentication no
Ora, se digiti semplicemente ssh devserver2
, il nome utente e la configurazione di pubkey verranno letti e utilizzati, e ti verrà chiesto di inserire la tua password e nient'altro.
( Nota: Sostituisci devserver2 con il nome host effettivo del server. In alternativa, scegli un nome host piacevole, come ad esempio devserver2, e aggiungi una proprietà tra Utente e PubkeyAuthentication chiamata 'Hostname' e inserisci il nome o indirizzo IP del server lì. In seguito, puoi semplicemente digitare 'ssh devserver2' e tutte le proprietà di configurazione funzioneranno con le rispettive magie.)