Kommentit
- serverfault.com/ questions / 241588 / …
- Suojattu tapa on luoda SSH-avain ssh-keygen -t rsa -b 2048: lla ja käyttää tätä avainta kirjaudu etäpalvelimeen vaihtoehtoisesti, voit asentaa " sshpash " ja sitten voit ssh koneesi seuraavalla komennolla sshpass -p ' salasana ' ssh käyttäjänimi @ palvelimen nimi
- Kysymys, johon tämä uudelleenohjataan, ei ole sama kuin tämä. Tämä kysyy tapaa aloittaa interaktiivinen istunto.
Vastaa
Asenna Ubuntuun sshpass
-paketti ja käytä sitä näin:
sshpass -p "YourPassword" ssh user@host
sshpass
tukee myös vuorovaikutteisen näppäimistön salasanan välittämistä tiedostosta tai ympäristömuuttujasta, mikä saattaa olla sopivampi vaihtoehto kaikissa tilanteissa, joissa turvallisuus on merkityksellistä. Katso yksityiskohdat man sshpass
.
Kommentit
- Ajattelua ei suositella eikä hyvä käytäntö, tämä on täsmällinen vastaus kysymykseen. Harkitse avainten käyttöä edellä esitetyllä tavalla. Mutta jos ' on merkittävä tekninen ongelma, tämä on kysytty ratkaisu.
- Äänestän vain vastauksen. Ei " järkevää, miksi älä ' t tee sitä tällä tavalla " vastausten kanssa. Vain vastaus. näin ollen äänestin sinua 🙂
- En vihaa sshpassia täysin, itse asiassa minä ' m käyttämällä väliaikaisesti. ' -p ' -sivun käyttäminen on kuitenkin tarpeetonta ja ei-toivottua. Aseta ensin muuttuja SSHPASS ja tee sitten sshpass -e ssh < ssh-args >.
- @Brad Jos sinulla on root ruutuun, voit asentaa
sshpass
käyttämälläyum --enablerepo=epel install sshpass
. - Tämä vastaus toimii myös Manjarolla ( Arch-pohjainen).
Vastaa
Jos vaihtoehto on lisätä salasana komentosarjaan tai ssh
komentorivi tai pelkkätekstitiedosto, sitten ”re MUCH parempi käyttää ssh
-avainta sen sijaan. Joko niin, kuka tahansa, jolla on pääsy tiliin, johon ssh
-työkalu on tallennettu voisi käyttää sitä päästäksesi palvelimelle, mutta ainakin ssh
-avaimen tapauksessa OpenSSH tukee sitä oikein, et anna käyttöoikeutta muulla tavalla kuin ssh
, se voidaan tarvittaessa peruuttaa helpommin jne. …
Sinun on selitettävä, miksi sinulla on vaatimus olla käyttämättä ssh-avainta.
Harkitse myös pakotetun komennon käyttöä (command="..."
kohdassa .ssh/authorized_keys
-tiedosto), jotta asiakkaalla on pääsy vain tarvitsemansa komennon suorittamiseen palvelimella kokonaisen kuoren sijaan. >
~/.ssh/
. PubkeyAuthentication no
kohdassa /etc/ssh/sshd_config
). Kummassakin tapauksessa parempi ratkaisu on korjata taustalla oleva ongelma, joka estää sinua tekemästä ssh-avaimen kirjautumista. Muussa tapauksessa tutustu Gillesin esittämään kysymykseen . ~/.ssh/
. Lisää avain mihin haluat, ja käytä ssh -i /path/to/id_rsa
~/.ssh/authorized_keys
95 eri ruutuun. Kirjoitin komentosarjan työntääksesi author_keys-tiedostoni automaattisesti, mutta silti pyydän salasanaa. Olisi mukavampaa saada komentosarja pyytää salasanaa kerran alussa. vastaus
Ensinnäkin, kuten muutkin vastaajat, suosittelen vain ssh-avainten käyttöä. Oletan kuitenkin, että palvelinta hallitseva henkilö ei yksinkertaisesti salli sinun käyttää ssh-avaimen todennusta ja sinun on käytettävä salasanan todennusta.
Voit käyttää ControlMasteria ja ControlPathia.
Olkoon A palvelin, johon sinulla ei ole pääsyä (ajattele jatkuvaa integraatiopalvelinta, kuten Bamboo) ja C on etäisäntä Ubuntua käyttävä.
Olkoon nyt B jokin hallitsemastasi tietokoneesta. Jos pystyt ei anna sopivaa B-tietokonetta, tämä vastaus ei toimi.
- Luo avainpari ja lisää julkinen osa B: n valtuutettujen avainten tiedostoon. Anna yksityinen avain A: lle. Nyt voit kirjautua B: hen A: sta ilman salasanaa.
- B: ssä B: ssä manuaalisesti
ssh -M -S /tmp/controlpath C
ja kirjoita salasanasi kehotteeseen. Sen jälkeen sinun pitäisi pystyä kirjautumaan C: hen A: sta ilman salasanaassh -S /tmp/controlpath C
.
A: n komentosarjassa voit kirjoittaa ssh B ssh C dostuff
.
Aina kun käynnistät B: n uudelleen, yhteys on luotava uudelleen ssh -M -S /tmp/controlpath C
.