De sshpass Utility brukes til å implementere automatisert passordbasert autentisering. Den kjører SSH i dedikert TTY (Teletypewriter) for å bekrefte at passordet er gitt av en interaktiv tastaturbruker for ikke-interaktiv autentisering. Hvordan i sshpass Kan brukes til autentisering har vist i denne opplæringen.
Forutsetninger
Før du starter trinnene i denne opplæringen, vil følgende trinn være pålagt å fullføre.
Aktiver SSH -tjenesten på Ubuntu hvis den ikke er aktivert før.
Generer SSH -nøkkelparene for å utføre kommandoene i den eksterne serveren. Kjør følgende kommando for å opprette den offentlige nøkkelen og den private nøkkelen. Den private nøkkelen blir lagret i den eksterne serveren, og de offentlige nøklene vil bli lagret i klienten sikkert.
$ SSH -KeyGen -t RSAKjør følgende kommando for å åpne SSHD_CONFIG Fil ved hjelp av Nano Editor for å legge til noen nødvendige konfigurasjoner.
$ sudo nano/etc/ssh/sshd_configLegg til følgende linjer i filen for å aktivere rotpålogging og passordbasert autentisering.
Passordauthentication JaKjør følgende kommando for å starte SSH -tjenesten på nytt.
$ sudo service ssh omstartSyntaks
Syntaksen til denne kommandoen er gitt nedenfor. Det støtter forskjellige alternativer som er beskrevet senere.
$ sshpass [-f filnavn | -d nummer | -p passord | -e] [Alternativer] Kommando argumenterUlike alternativer for SSHpass -kommandoen
Formålet med annerledes sshpass Alternativer er beskrevet her. sshpass leser passordet fra standardinngangen hvis ikke noe alternativ er gitt.
Alternativ | Hensikt |
---|---|
-P Passord | Det brukes til å oppgi passordet på kommandolinjen. |
-f filnavn | Det brukes til å gi den alternative kilden til passordet. |
-d nummer | Den brukes til å gi filbeskrivelsen som er arvet av SSHpass. |
-e | Det brukes til å ta passordet fra miljøvariabelen “SSHpass”. |
Installer SSHpass
SSHpass er ikke installert på Ubuntu som standard. Kjør følgende kommando for å installere sshpass på Ubuntu.
$ sudo apt-get install sshpassFølgende utgang vises hvis SSHpass er riktig installert.
Koble til serveren ved å oppgi et passord
Måten å koble til med den eksterne maskinen ved å bruke SSHpass med -p -alternativet vises i denne delen av opplæringen. Her er brukernavnet 'Fahmida' og passordet er '12345' av Sever -maskinen. IP -adressen til servermaskinen er 10.0.2.15. Brukernavnet til klientmaskinen er 'Yesmin'. Kjør følgende kommando for å koble til serveren ved å oppgi passordet.
$ sshpass -p '12345' ssh [email protected]Følgende utgang vises hvis tilkoblingen er etablert riktig med servermaskinen. Utgangen viser at brukernavnet blir endret til 'Fahmida' fra 'Yesmin' i ledeteksten etter å ha fastsatt forbindelsen. Nå, hvis brukeren kjører noen kommando, vil den bli utført fra servermaskinen.
Koble til serveren uten å oppgi passord
Det er ikke sikkert å oppgi passordet i kommandolinjen. Dette problemet kan løses på to måter. En måte er å lagre passordet i miljøvariabelen ved å bruke eksport Kommando og en annen måte er å lagre passordet i en fil.
Kjør følgende kommando for å lagre passordet i SSHpass -miljøvariabelen ved hjelp av eksportkommandoen.
$ eksport sshpass = "12345"Nå kan du kjøre SSHpass -kommandoen med alternativet -e for å lage forbindelsen med servermaskinen uten å oppgi passord i kommandolinjen. Kjør følgende kommando for å koble til serveren uten å gi passordet.
$ sshpass -e ssh [email protected]Følgende utgang vises hvis tilkoblingen er etablert riktig med servermaskinen. Utgangen viser at brukernavnet blir endret til 'Fahmida' fra 'Yesmin' i kommandoprommet etter å ha opprettet forbindelsen som forrige kommando.
Måten å koble til med serveren ved hjelp av sshpass Ved å lagre passordet i en fil har blitt vist i denne delen av opplæringen. Kjør følgende kommando for å opprette sshfile fil og lagre passordet for å koble til servermaskinen.
$ ekko '12345'> sshfileKjør følgende kommando for å angi tillatelsesbiter for sshfile fil som vil gjøre filen sikker.
$ chmod 0400 sshfileKjør nå følgende kommando for å koble til serveren uten å oppgi passordet i kommandolinjen. Her har -f -alternativet blitt brukt med sshpass Kommando for å lese passordet fra filen.
$ sshpass -f sshfile ssh [email protected]Følgende utgang vises hvis tilkoblingen er etablert riktig med servermaskinen. Utgangen viser at brukernavnet blir endret til 'Fahmida' fra 'Yesmin' i kommandoprommet etter å ha opprettet forbindelsen som forrige kommando.
Bruke SSHpass -kommandoen i skriptet
SSHpass -kommandoen brukes til å lage forbindelsen med serveren fra terminalen i forrige del av denne opplæringen. Men du kan utføre hvilken som helst kommando i servermaskinen uten å logge inn på serveren ved å skrive et bash -skript med SSHpass -kommandoen. Lag en bash -fil som heter ssh.sh I klientmaskinen med følgende innhold. Skriptet vil utføre 'PWD' kommando i servermaskinen og lagre utdataene i en variabel. Verdien av variabelen vil bli skrevet ut senere.
ssh.shKjør følgende kommando fra terminalen.
$ bash ssh.shFølgende utgang vil vises hvis PWD Kommandoen utføres riktig i servermaskinen. Brukernavnet til servermaskinen er 'Fahmida'. Så utgangen viser at '/home/fahmida/' er utgangen til PWD kommando.
Konklusjon
Bruken av SSHpass-kommandoen for ikke-interaktiv innlogging er vist i denne opplæringen av to forskjellige brukerkontoer av Localhost. Du kan gjøre den samme oppgaven for den eksterne verten ved å følge trinnene som vises i denne opplæringen.