Hvordan bruke SSHPASS for ikke-interaktiv SSH-pålogging

Hvordan bruke SSHPASS for ikke-interaktiv SSH-pålogging
Linux-brukeren kan bruke passordbasert eller passordfri godkjenning for å logge på den eksterne serveren ved hjelp av SSH. Passordfri autentisering er sikrere, men den enkleste og mest populære måten å autentisere er passordbasert autentisering. Brukeren må oppgi passordet når det er nødvendig for å autentisere, og SSH krever også å få tilgang til et skallskript manuelt.

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 RSA

Kjø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_config

Legg til følgende linjer i filen for å aktivere rotpålogging og passordbasert autentisering.

Passordauthentication Ja
Tillatootlogin Ja

Kjør følgende kommando for å starte SSH -tjenesten på nytt.

$ sudo service ssh omstart

Syntaks

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 argumenter

Ulike 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 sshpass

Fø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'> sshfile

Kjør følgende kommando for å angi tillatelsesbiter for sshfile fil som vil gjøre filen sikker.

$ chmod 0400 sshfile

Kjø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.sh
#!/bin/bash
Verdi = $ (Sshpass -f SSHFile Ssh [email protected] 'PWD')
ekko $ verdi

Kjør følgende kommando fra terminalen.

$ bash ssh.sh

Fø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.