Secure Shell eller SSH är ett välkänt open source-nätverksprotokoll. Protokollet används för att fjärrlogga in på andra maskiner. Därför skulle det vara enkelt att utföra en massa kommandon och starta alla applikationer på fjärrenheten smidigt utan att behöva vara nära fjärrmaskinen. Dessutom är SSH-protokollet mycket pålitligt och säkert. Användare är alltid beroende av SSH-protokollet för att kopiera filer mellan två olika enheter.
För att skapa en SSH-anslutning med fjärrmaskinen måste du vanligtvis ange användarnamnet och lösenordet för fjärrmaskinen. Men tänk om du behöver en säkrare metod än att använda användarnamn och lösenord i varje inloggning? Detta kan göras med en SSH-nyckel som genereras från klientmaskinen och sedan kopieras till fjärrmaskinen. Med extra små konfigurationer kan du säkert logga in på fjärrmaskinen utan att använda ett användarnamn och lösenord varje gång. Att använda en SSH-nyckel istället för att använda användarnamnet och lösenordet i varje inloggning är mycket säkrare; endast maskinen som har rätt SSH-nyckel kan snabbt logga in.
Idag ska vi visa dig hur du skapar en SSH-anslutning utan att behöva ange lösenordet för fjärrmaskinen. Vanligtvis kan en lösenordsfri inloggning användas för att snabbt överföra filer mellan olika datorer. Men innan vi börjar vår tutorial, låt oss ta en titt på vår miljö.
Miljöförberedelse
Det vore bäst om du hade två maskiner, klienten och fjärrmaskinerna. Nästan allt arbete kommer att göras från klientmaskinen som kommer att användas för att ansluta till fjärrenheten. Båda enheterna är Ubuntu med följande IP-adresser
- De klient maskinen har en IP 192.168.1.20 med användarnamn tuts.
- De avlägsen maskinen har en IP 192.168.1.30 med ett användarnamn hendadel.
En sak till innan du startar, se till att båda maskinerna är uppdaterade med följande kommandon:
sudo apt uppdatering sudo apt uppgradering
Låt oss nu börja vår guide.
Ställa in lösenordsfri SSH-inloggning
Steg 1. Kontrollera om det finns en SSH-nyckel genererad innan du använder nästa kommando från klientmaskinen.
ls -al ~ /.ssh / id_ *.pub
Som du kan märka, om du inte tidigare har genererat en SSH-nyckel, får du meddelandet "Ingen sådan fil eller katalog". Annars får du snabbt tillgängliga tangenter om de finns.
Steg 2. Eftersom du inte har några genererade SSH-nycklar tidigare är det dags att generera en ny SSH-nyckel med följande kommando:
ssh-keygen -t rsa -b 4096
Vanligtvis genererar det föregående kommandot nya två SSH-nycklar i två olika filer. Båda filerna lagras i en dold katalog med namnet “.ssh ”under den aktuella användarens hemkatalog. Du kan hitta en privat nyckel lagrad i en fil med namnet id_dsa och en annan offentlig nyckel i en fil med namnet id_dsa.pub. Dessutom kommer du att bli ombedd att lägga till en lösenfras som används för att skydda de genererade nycklarna, och du kan använda den när du ansluter via SSH. Men du kan trycka påStiga på”-Knappen för att inte använda en.
Steg 3. Nu kan du lista innehållet i .ssh-katalogen för att se till att båda nycklarna skapas.
ls -l / hem / tuts /.ssh /
Steg 4. Du kan också se till att filen har en nyckel i sig med följande kommando:
ssh-keygen -lv
Steg 5. För att förhandsgranska innehållet i den offentliga nyckelfilen.
katt .ssh / id_rsa.pub
Steg 6. Se till att du har SSH installerat från fjärrmaskinen. Om den inte är installerad kan du använda följande kommando.
sudo apt installera ssh
Steg 7. Tillbaka till klientmaskinen, anslut till fjärrmaskinen och skapa en ny katalog med namnet .ssh.
sudo ssh remote_machine_username @ remote_machine_IP mkdir -p .ssh
Se till att ersätta remote_machine_username med riktigt användarnamn och remote_machine_IP med fjärr-IP.
Steg 8. Låt oss sedan kopiera den offentliga SSH-nyckeln från klientmaskinen som genererades tidigare till fjärrmaskinen. Det skulle hjälpa om du klistrade in den offentliga nyckeln till en fil med namnet “Auktoriserade_knappar”. Det rekommenderas starkt att du inte ändrar filnamnet, för när du ska upprätta en SSH-anslutning är den första filen som operativsystemet kontrollerar är “Auktoriserade_knappar” fil. Om systemet inte hittade filen blir du ombedd att ange ett användarnamn och lösenord för att kunna logga in på fjärrmaskinen.
sudo katt .ssh / id_rsa.pub | ssh remote_machine_username @ remote_machine_IP 'cat >> .ssh / auktoriserade_knappar
Steg 9. Från fjärrmaskinen, se till att den offentliga nyckeln har kopierats med namnet auktoriserade_nycklar.
ls .ssh / katt .ssh / auktoriserade_tangenter
Steg 10. Nu från klientmaskinen, låt oss försöka skapa en SSH-anslutning utan ett användarnamn och lösenord.
ssh remote_machine_username @ remote_machine_IP
Som du märker blir du inte ombedd att ange ett användarnamn eller ett lösenord.
Inaktivera lösenordsautentisering
För att inaktivera lösenordsautentisering med den offentliga nyckeln måste du först redigera SSH-konfigurationsfilen från fjärrmaskinen och inaktivera alternativet för lösenordsautentisering. Nedan följer stegen för att göra det.
Steg 1. Från fjärrmaskinen, öppna ssh-konfigurationsfilen med din favoritredigerare.
vi / etc / ssh / sshd_config
Steg 2. Bläddra till slutet av SSH-konfigurationsfilen och lägg till nästa rad för att inaktivera lösenordsautentisering:
RSAAuthentication yes PubkeyAuthentication yes PasswordAuthentication no UsePAM no ChallengeResponseAuthentication no
Steg 3. Spara och avsluta filen.
Steg 4. Slutligen starta om SSH-tjänsten och försök upprätta en ny anslutning från klientmaskinen till fjärrmaskinen igen.
Det är allt! Du har just lärt dig hur man skapar en SSH-anslutning utan lösenord. Jag hoppas att du hade haft det.