SSH login med klar tekstadgangskode som parameter? [duplikat]

Dette spørgsmål har allerede svar her :

Kommentarer

  • serverfault.com/ spørgsmål / 241588 / …
  • Den sikre måde er at generere SSH-nøgle med ssh-keygen -t rsa -b 2048 og bruge denne nøgle til log ind på fjernserveren som alternativ, du kan installere " sshpash " og derefter kan du ssh din maskine med følgende kommando sshpass -p ' adgangskode ' ssh-brugernavn @ servernavn
  • Spørgsmålet dette omdirigeres til er ikke det samme som dette. Denne beder om en måde at starte en interaktiv session på.

Svar

På Ubuntu skal du installere sshpass -pakke, og brug den således:

sshpass -p "YourPassword" ssh [email protected] 

sshpass understøtter også videregivelse af det tastaturinteraktive kodeord fra en fil eller en miljøvariabel, hvilket kan være en mere passende mulighed i enhver situation, hvor sikkerhed er relevant. Se man sshpass for detaljer.

Kommentarer

  • Selvom det ikke anbefales, og det er ikke god praksis, dette er nøjagtigt svaret på spørgsmålet. Overvej at bruge taster som angivet ovenfor. Men hvis der ' er et stort teknisk problem, er dette den stillede løsning
  • Jeg opstemte kun svaret. Ikke " rationelt hvorfor ikke ' t gør det på denne måde i stedet for " svar. Bare svaret. derfor opstemte jeg dig 🙂
  • Jeg ' hader ikke sshpass fuldstændigt, faktisk ' jeg bruger det midlertidigt. At bruge ' -p ' er dog unødvendigt og uønsket. Indstil variablen SSHPASS først, og gør derefter sshpass -e ssh < ssh-args >.
  • @Brad If du har rod på feltet, kan du installere sshpass ved hjælp af yum --enablerepo=epel install sshpass.
  • Dette svar fungerer også på Manjaro ( Buebaseret).

Svar

Hvis dit alternativ er at placere en adgangskode i et script eller ssh kommandolinje eller almindelig tekstfil, så “re MEGET bedre i stedet for at bruge en ssh -tast. Uanset hvad, enhver, der har adgang til den konto, hvor ssh -klientscriptet er gemt kunne bruge det til at komme ind på serveren, men i det mindste i tilfælde af en ssh -nøgle understøtter OpenSSH den korrekt, giver du ikke adgang på andre måder end ssh, det tilbagekaldes lettere, hvis det er nødvendigt osv …

Du bliver nødt til at forklare, hvorfor du har et krav om ikke at bruge en ssh-nøgle.

Overvej også at bruge en tvungen kommando (command="..." i .ssh/authorized_keys -fil), så klienten kun har adgang til at køre den kommando, de har brug for, på serveren i stedet for en fuld shell.

Kommentarer

  • Fjernværten er faktisk en VM, der bruges af andre ingeniører uden ressourcer, der er værd at risikere, bortset fra kopier af testautomatiseringskoden. Af hensyn til diskussionen, lad os sige, at den eneste adgang, jeg har, er at tilføje scriptfilen, ikke tilføje ssh-nøgler i ~/.ssh/.
  • At ' er meget konstrueret. Et noget mindre konstrueret scenario ville være, at en vildledt administrator af serveren deaktiverede ssh-nøgle-login (PubkeyAuthentication no i /etc/ssh/sshd_config). I begge tilfælde er den bedre løsning at rette det underliggende problem, der forhindrer dig i at foretage ssh-nøgle-login. I modsat fald se spørgsmålet fra Gilles .
  • @MichaelM du behøver ikke tilføje ssh-nøgler i ~/.ssh/. Tilføj nøglen, hvor du vil, og brug ssh -i /path/to/id_rsa
  • Stackexchanges-svaret skal svare på spørgsmålet og ikke argumentere for, at spørgsmålet er korrekt. Jeg har et gyldigt scenario for dette. Jeg har brug for at opsætte min ~/.ssh/authorized_keys i 95 forskellige felter. Jeg skrev et script for at skubbe min autoriserede_keys-fil automatisk, men beder stadig om adgangskode. At have scriptet til at bede om adgangskoden en gang i starten ville være pænere.
  • Jeg er enig med flarn2006.Du kan ikke sige " dette spørgsmål er dumt, så her er ' et svar på et andet spørgsmål, fordi jeg tror, det ' et bedre spørgsmål, og jeg kender svaret på det ".

Svar

Først og fremmest, som de andre respondenter, anbefaler jeg bare at bruge ssh-nøgler. Men jeg antager, at den person, der styrer serveren, simpelthen ikke vil tillade dig at bruge ssh-nøglegodkendelse, og du skal bruge adgangskodegodkendelse.

Du kan bruge ControlMaster og ControlPath.

Lad A være den server, som du ikke har adgang til (tænk kontinuerlig integrationsserver som Bamboo), og C være den eksterne vært, der kører Ubuntu.

Lad B nu være en computer, som du styrer. Hvis du kan ikke give en passende B-computer, dette svar fungerer ikke.

  1. Opret et nøglepar og tilføj den offentlige del til Bs autoriserede_keys-fil. Giv A den private nøgle. Nu kan du logge ind på B fra A uden adgangskode.
  2. På B manuelt ssh -M -S /tmp/controlpath C og indtast din adgangskode ved prompten. Derefter skal du kunne logge ind på C fra A uden adgangskode ssh -S /tmp/controlpath C.

I scriptet på A kan du skrive ssh B ssh C dostuff.

Hver gang du genstarter B, skal du gendanne forbindelsen ssh -M -S /tmp/controlpath C.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *