Accesso SSH con password in testo non crittografato come parametro? [duplicate]

Questa domanda ha già una risposta qui :

Commenti

  • serverfault.com/ domande / 241588 / …
  • Il modo sicuro è generare la chiave SSH con ssh-keygen -t rsa -b 2048 e utilizzare questa chiave per accedi al server remoto come alternativa puoi installare " sshpash " e poi puoi ssh la tua macchina con il seguente comando sshpass -p ' password ' ssh nomeutente @ servername
  • La domanda a cui viene reindirizzata non è la stessa di questa. Questo sta chiedendo un modo per avviare una sessione interattiva.

Risposta

Su Ubuntu, installa sshpass pacchetto, quindi usalo in questo modo:

sshpass -p "YourPassword" ssh user@host 

sshpass supporta anche il passaggio della password interattiva da tastiera da un file o da una variabile di ambiente, che potrebbe essere unopzione più appropriata in qualsiasi situazione in cui la sicurezza è rilevante. Vedi man sshpass per i dettagli.

Commenti

  • Sebbene non sia raccomandato e non sia una buona pratica, questa è esattamente la risposta alla domanda. Considera lidea di utilizzare le chiavi come indicato sopra. Ma se ' è un problema tecnico importante, questa è la soluzione richiesta
  • Mi limito a votare a favore della risposta. Non " razionale perché non ' non lo fai in questo modo invece " risponde. Solo la risposta. quindi, ti ho votato positivamente 🙂
  • Non ' odio completamente sshpass, infatti ' utilizzo su base temporanea. Tuttavia, lutilizzo di ' -p ' non è necessario e non è consigliabile. Imposta prima la variabile SSHPASS e poi esegui sshpass -e ssh < ssh-args >.
  • @Brad If hai root sulla scatola, puoi installare sshpass usando yum --enablerepo=epel install sshpass.
  • Questa risposta funziona anche su Manjaro ( Basato su Arch).

Risposta

Se la tua alternativa è inserire una password in uno script o ssh riga di comando o file di testo normale, quindi “re MOLTO meglio utilizzare una chiave ssh. In ogni caso, chiunque abbia accesso allaccount in cui è archiviato lo script client ssh sarebbe in grado di usarlo per entrare nel server, ma almeno nel caso di una chiave ssh, OpenSSH la supporta correttamente, non concedi laccesso con mezzi diversi da ssh, è più facilmente revocabile se necessario, ecc …

Dovrai spiegare perché hai lobbligo di non utilizzare una chiave ssh.

Considera anche lutilizzo di un comando forzato (command="..." nel .ssh/authorized_keys file) in modo che il client abbia accesso solo per eseguire il comando di cui ha bisogno sul server invece che su una shell completa.

Commenti

  • Lhost remoto è in realtà una VM utilizzata da altri ingegneri senza risorse che valga la pena rischiare se non le copie del codice di automazione del test. Per il bene della discussione, supponiamo che lunico accesso che ho è aggiungere il file di script, non aggiungere chiavi ssh in ~/.ssh/.
  • Quel ' è altamente artificioso. Uno scenario un po meno artificioso sarebbe che un amministratore fuorviato del server disabiliti gli accessi con chiave ssh (PubkeyAuthentication no in /etc/ssh/sshd_config). In entrambi i casi, la soluzione migliore è risolvere il problema sottostante che ti impedisce di eseguire accessi con chiave ssh. In caso contrario, consulta la domanda indicata da Gilles .
  • @MichaelM non devi aggiungere chiavi ssh in ~/.ssh/. Aggiungi la chiave dove vuoi e utilizza ssh -i /path/to/id_rsa
  • La risposta di Stackexchanges dovrebbe rispondere alla domanda, non sostenere che la domanda è corretta. Ho uno scenario valido per questo. Devo configurare il mio ~/.ssh/authorized_keys in 95 caselle diverse. Ho scritto uno script per eseguire automaticamente il push del mio file authorized_keys, ma richiede comunque la password. Avere lo script per richiedere la password una volta allinizio sarebbe più bello.
  • Sono daccordo con flarn2006.Non puoi dire " questa domanda è stupida, quindi ' è una risposta a una domanda diversa perché penso che sia ' è una domanda migliore e conosco la risposta ".

Risposta

Prima di tutto, come gli altri intervistati, consiglio di usare solo le chiavi ssh. Ma presumo che la persona che controlla il server semplicemente non ti permetterà di utilizzare lautenticazione con chiave ssh e che tu debba usare lautenticazione con password.

Puoi usare ControlMaster e ControlPath.

Lascia che A sia il server a cui non avrai accesso (pensa a un server di integrazione continua come Bamboo) e C sia lhost remoto che esegue Ubuntu.

Ora lascia che B sia un computer che controlli. Se puoi non fornire un computer B adatto, questa risposta non funzionerà.

  1. Crea una coppia di chiavi e aggiungi la parte pubblica al file authorized_keys di B. Dai ad A la chiave privata. Ora puoi accedere a B da A senza password.
  2. Su B manualmente ssh -M -S /tmp/controlpath C e inserisci la tua password quando richiesto. Dopodiché dovresti essere in grado di accedere a C da A senza una password ssh -S /tmp/controlpath C.

Nello script su A puoi scrivere ssh B ssh C dostuff.

Ogni volta che riavvii B, dovrai ristabilire la connessione ssh -M -S /tmp/controlpath C.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *