Come memorizzare le credenziali SSH nel terminale

27

Sono nuovo di MacBook e sto eseguendo El Capitan.

Sto migrando l'utilizzo della mia macchina da un PC a un MacBook. Sono un utente di lunga data di PuTTY e SuperPuTTY su un PC.

Voglio creare e salvare le credenziali di accesso ai miei server web su MacBook Terminal proprio come ho fatto su SuperPuTTY sul PC.

È possibile salvare le credenziali di accesso al server web nel terminale Mac?

Ecco il mio obiettivo generale:

Vorrei sapere se esiste un modo semplice in Mac Terminal per archiviare le seguenti credenziali di accesso alla riga di comando e quindi utilizzare una sorta di shortcode per connettersi al mio server Web tramite Terminal:

ssh -p 2200 [email protected]
Password: ****************************************************************

Gestisco e mi connetto a 5 server Web diversi, quindi l'ordinamento e l'organizzazione delle credenziali di accesso in un metodo di connessione breve / veloce sarebbe un enorme risparmio di tempo. Soprattutto perché le mie password sono stringhe di 64 caratteri criptici.

    
posta tammy 09.10.2015 - 16:31
fonte

4 risposte

41

Puoi copiare la tua chiave pubblica sui computer remoti. Finché l'autenticazione della chiave pubblica è abilitata e la tua chiave pubblica è presente sulla macchina remota, puoi ssh sulle macchine senza dover fornire una password.

Per prima cosa dovrai generare una coppia di chiavi pubblica / privata in questo modo:

ssh-keygen -t rsa

Segui le istruzioni. Quando ti chiede se vuoi proteggere la chiave con una passphrase dire SÌ! È una cattiva pratica non proteggere con password le tue chiavi e ti mostrerò come inserire la password solo una volta ogni tanto.

Se hai già una coppia di chiavi, puoi saltare il passaggio precedente.

Ora, supponendo che la tua chiave ssh esista sul tuo Mac come ~/.ssh/id_rsa.pub , puoi installarla su una macchina remota eseguendo:

cat ~/.ssh/id_rsa.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"

Per il tuo specifico server esempio citato sopra, il comando sarà simile a:

cat ~/.ssh/id_rsa.pub | ssh -p 2200 [email protected] "mkdir -p ~/.ssh && cat >>  ~/.ssh/authorized_keys"

Dovrai inserire la password per [email protected] per eseguire questa copia, ma questa dovrebbe essere l'ultima volta che devi farlo. Supponendo che il sshd del server remoto sia configurato per eseguire l'autenticazione con chiave pubblica-privata, quando si ssh alla casella ora non dovrebbe chiedere una password per l'account root - invece ti chiederà la password per il tuo tasto . Continua a leggere per sapere come rendere questo qualcosa che non è necessario inserire sempre.

Ripeti l'operazione precedente per ogni macchina su cui vuoi eseguire l'ssh con le tue chiavi invece di una password.

Nota, chiunque che ottiene una sospensione del tuo file ~/.ssh/id_rsa può ssh su questa macchina come root senza fornire una password per la macchina remota. La password che protegge il file chiave assicura che sia necessario conoscere la password per quella chiave per utilizzarla. Assicurati che il file sia sicuro. Usa la crittografia del disco sul tuo Mac e mantieni le autorizzazioni sul file e la cartella ~/.ssh/ stretta.

Per semplificare l'utilizzo della chiave senza dover immettere la password ogni volta, OS X esegue una procedura ssh-agent in background sul computer. Questo agente memorizzerà nella cache la keypair la prima volta che la utilizzerai, quindi dovrai inserire la password una volta ogni tanto. Se dormi solo nel Mac, non riavvialo mai, puoi passare lunghi periodi di tempo senza dover inserire la password.

Puoi pre-memorizzare tutte le tue chiavi SSH con ssh-agent eseguendo:

ssh-add

Ora devi solo ricordare la password chiave , non le molte password di account diverse. Di solito mantengo le mie password chiave in 1Password (nessuna affiliazione), semplificando ulteriormente il numero di password che devo ricordare. Poi li ho cercati in 1Password e li ho tagliati e incollati nel Terminale la volta dispari per riavviare il mio Mac e far riavviare il mio ssh-agent in esecuzione.

Se si combina la copia della chiave su macchine remote con la soluzione di gestione delle connessioni Terminal.app in questa domanda , avrai qualcosa di molto vicino a PuTTY per l'esperienza della connessione GUI.

Sul lato server, controlla /etc/ssh/sshd_config e assicurati che

PubkeyAuthentication yes

è abilitato nella configurazione (è di default in OpenSSH). Potresti anche voler impostare:

PasswordAuthentication no

Mentre sei lì, l'autenticazione basata su password è disabilitata e le chiavi diventano l'unico modo per accedere alla macchina.

Dovrai riavviare sshd sulla macchina se apporti modifiche al file di configurazione.

    
risposta data 09.10.2015 - 18:53
fonte
1

Puoi usare sshpass per salvare la password e non dovrai inserire ogni volta che non è una buona pratica (problemi di sicurezza).

Segui le istruzioni per l'installazione di mac os x su: link

Quando hai installato sshpass, esegui sshpass -p "YOUR_PASSWORD" ssh -o StrictHostKeyChecking=no [email protected]:2200

Fai la stessa cosa per i tuoi 5 server web e non dovrai inserire la password ogni volta.

    
risposta data 09.10.2015 - 18:16
fonte
1

Oltre alla chiave pubblica / privata, il file .ssh / config può essere configurato per facilitare l'uso dei comandi ssh, come alias, utente / porta predefinito per server, opzioni ssh, comandi proxy ...

Fondamentalmente qualsiasi cosa complicata che puoi inserire in un comando ssh può essere anche in questo file.

    
risposta data 09.10.2015 - 21:57
fonte
-1

Ho portato Putty su Mac come pacchetto di applicazioni nativo, quindi non ho bisogno di macports o terminali se non sei un utente tecnico.

Ulteriori informazioni con le schermate sono qui: link

Saluti,

    
risposta data 31.08.2016 - 21:34
fonte

Leggi altre domande sui tag