Această întrebare are deja răspunsuri aici :
Comentarii
Răspuns
Pe Ubuntu, instalați sshpass
, apoi folosiți-l astfel:
sshpass -p "YourPassword" ssh user@host
sshpass
acceptă, de asemenea, transmiterea parolei interactive de la tastatură dintr-un fișier sau o variabilă de mediu, care ar putea fi o opțiune mai potrivită în orice situație în care securitatea este relevantă. Consultați man sshpass
pentru detalii.
Comentarii
- Althought nu este recomandat și nu este o practică bună, acesta este exact răspunsul la întrebare. Luați în considerare utilizarea tastelor așa cum s-a menționat mai sus. Dar dacă există ' o problemă tehnologică majoră, aceasta este soluția cerută
- Votez doar răspunsul. Nu " rațional de ce nu ' faceți acest lucru în schimb, " răspunde. Doar răspunsul. prin urmare, v-am votat în sus 🙂
- Nu ' urăsc complet sshpass, de fapt ' folosesc pe bază temporară. Cu toate acestea, utilizarea ' -p ' este inutilă și nedorită. Setați mai întâi variabila SSHPASS și apoi faceți sshpass -e ssh < ssh-args >.
- @Brad Dacă aveți rădăcină pe cutie, puteți instala
sshpass
folosind yum --enablerepo=epel install sshpass
.
- Acest răspuns funcționează și pe Manjaro ( Bazat pe arhive).
Răspuns
Dacă alternativa dvs. este să introduceți o parolă într-un script sau ssh
linie de comandă sau fișier text simplu, apoi „re MULTE mai bine să folosiți o tastă ssh
. Oricum, oricine are acces la contul în care este stocat scriptul client ssh
ar putea folosi asta pentru a intra în server, dar cel puțin în cazul unei chei ssh
, OpenSSH o acceptă corect, nu acordați acces prin alte mijloace decât ssh
, este mai ușor revocat, dacă este necesar, etc …
Va trebui să explicați de ce aveți cerința de a nu utiliza o cheie ssh.
Luați în considerare și utilizarea unei comenzi forțate (command="..."
în .ssh/authorized_keys
fișier) astfel încât clientul să aibă acces doar pentru a rula comanda de care are nevoie pe server, mai degrabă decât un shell complet.
Comentarii
Răspuns
În primul rând, la fel ca ceilalți respondenți, recomand doar utilizarea tastelor ssh. Dar voi presupune că persoana care controlează serverul nu vă va permite pur și simplu să utilizați autentificarea cheii ssh și trebuie să utilizați autentificarea prin parolă.
Puteți utiliza ControlMaster și ControlPath.
Lăsați-l pe A să fie serverul la care nu ați avut acces (gândiți-vă la un server de integrare continuă, cum ar fi Bamboo) și C să fie gazda la distanță care rulează Ubuntu.
Acum, să fie B un computer pe care îl controlați. Dacă puteți nu furnizați un computer B adecvat, acest răspuns nu va funcționa.
- Creați o pereche de chei și adăugați partea publică la fișierul autorizat-chei al lui B. Dă-i cheii private A. Acum vă puteți conecta la B din A fără o parolă.
- Pe B manual
ssh -M -S /tmp/controlpath C
și introduceți parola la prompt. După aceea, ar trebui să vă puteți conecta la C din A fără o parolă ssh -S /tmp/controlpath C
.
În scriptul de pe A puteți scrie ssh B ssh C dostuff
.
De fiecare dată când reporniți B, va trebui să restabiliți conexiunea ssh -M -S /tmp/controlpath C
.