Soluzione 1:
No, non esiste alcun metodo per specificare o fornire sulla riga di comando la password in modo non interattivo per l'autenticazione ssh utilizzando un meccanismo integrato openssh. Almeno non uno di quello che so. Potresti codificare la tua password nello script di attesa, ma non è nemmeno una buona soluzione.
Sicuramente vorrai utilizzare le coppie di chiavi per l'autenticazione senza password, come ha affermato Michael, alla fine la chiave privata è praticamente una grande password nel file.
Soluzione 2:
Per evitare la serie di commenti:Sì, questo è insicuro (nemmeno discutibilmente insicuro). Ti consiglio vivamente di farlo solo in una situazione di laboratorio su una rete isolata o una situazione simile che non coinvolge server di produzione o potenzialmente server di produzione senza un ripristino/formattazione completa.
Volevo configurarlo perché non penso che il mio switch 2950 supporti le chiavi private/pubbliche e spero che a un certo punto ne venga a conoscenza, ma non ci sono ancora arrivato.
Usando un alias e sshpass questo può essere realizzato.
- Installa sshpass
- Modifica il tuo .ssh/config file per includere il nome utente come elencato nella domanda
- Aggiungi un alias al tuo terminale (ho usato .bashrc e sconsiglio le impostazioni gloabl)
- Usa alias per accedere al target
Il mio alias di esempio è:
alias ssc='sshpass -pcisco ssh'
Dove "cisco" è la password. Nota che non c'è spazio tra -p e la password.
L'utilizzo è (riferendosi alla domanda):
ssc server1
Nota:questo risponde alla domanda nel titolo solo per coloro che utilizzano i motori di ricerca. Se stai utilizzando server come nell'esempio della domanda, dovrebbero essere utilizzate coppie di chiavi private/pubbliche e non questa risposta
Soluzione 3:
Sì, come accennato in precedenza non c'è modo di salvare semplicemente la password. Consiglierei di utilizzare la chiave ssh per l'autorizzazione.
per prima cosa, genera la tua chiave :
ssh-keygen
Quindi copia la chiave sui tuoi server/desktop :
ssh-copy-id -i .ssh/id_rsa.pub [email protected]:
È tutto. Non ti verrà mai più chiesta la password.
Consiglio anche di rimuovere l'autorizzazione della password in generale, ma dipende da te.
Soluzione 4:
Non c'è modo di farlo con ssh, è il più insicuro possibile.
Come ha detto Danila, potresti usare gli script previsti ma non mi preoccuperei.
Mi chiedo cosa stai cercando di ottenere? Vuoi passare da un server all'altro? In questo caso si desidera configurare e utilizzare ssh-agent sulla propria workstation e abilitare l'inoltro dell'agent sugli host di destinazione; in questo modo lo scambio di credenziali verrà instradato al tuo agente locale senza dover copiare la tua chiave privata in giro.
Soluzione 5:
Uso questo script da ~/.local/bin
cartella
#!/usr/bin/bash
ORIG_SSH=/usr/bin/ssh
HOST=$1
SSHPASS=$(grep -Pzo "Host $HOST"'\s*\n((?!Host).*\n)*#PS\s(\N+)\n' ~/.ssh/config|tail -n 2|head -n 1 | sed 's/#PS //')
if [ -n $SSHPASS ]; then
export SSHPASS
sshpass -e $ORIG_SSH [email protected]
else
$ORIG_SSH [email protected]
fi
Il che mi consente di specificare la passphrase come #PS <password>
in .ssh/config
file.
Ma, come dicono tutti, è meglio usare ssh-keys
con ssh-agent
quando è possibile