Hei,
Her vil du se hvordan du kobler til en PC eksternt ved SSH bare å skrive inn passordet første gang, så selv om vi starter begge datamaskinene på nytt, blir vi ikke bedt om passordet igjen.
Men la oss først se en kort forklaring om hva som er SSH:
SSH det er en protokoll, et kommunikasjonsmiddel mellom to datamaskiner. Det lar oss administrere et team eksternt. Når vi får tilgang til en annen datamaskin med SSH, vil kommandoen vi skriver inn i terminalen utføres på den andre datamaskinen, på denne måten administrerer / kontrollerer vi den.
Alt som overføres av SSH, det er kryptert og med en betydelig god sikkerhet.
Nå skal vi se hvordan vi bare konfigurerer tre trinn PC nr. 1 å få tilgang PC nr. 2 uten å oppgi passord:
Vi har følgende situasjon:
PC # 1 - » Du vil koble til PC nr. 2, uten å måtte oppgi passord hver gang du prøver å koble til denne andre PC-en.
PC # 2 - » Du har SSH-serveren installert. Dette er den ene PC nr. 1 den vil koble til, og den vil gjøre det uten å skrive inn passord. På denne PC-en er det en bruker som heter root.
La oss starte…
1. En PC nr. 1 vi skriver følgende:
- ssh -keygen -b 4096 -t rsa
Dette vil generere en offentlig nøkkel. For ikke å bli forvirret med "offentlige og private nøkler", vil jeg forklare det veldig enkelt.
Anta at du har to nøkler til huset ditt i lommen, en du gir til kjæresten din siden du bor sammen, og med den andre blir du alene, gir du den ikke til noen. Vel, den nøkkelen du ga kjæresten din, vil tillate henne å komme inn i huset ditt uten å fortelle deg det, uten å spørre om tillatelse, ikke sant? det er en offentlig nøkkel, en "nøkkel" som lar en PC få tilgang til en annen uten å måtte be om din tillatelse (det vil si uten å oppgi brukernavn + passord)
Når de legger den kommandoen, vises det:
2. Bare trykk [Tast inn], et sekund senere trykker vi på igjen [Tast inn], og et sekund senere trykker vi en gang til [Tast inn]. Jeg mener, vi ville trykke [Tast inn] totalt tre (3) ganger trykker vi bare på den ... vi skriver ikke noe ????
Når vi gjør dette, vil noe som ligner på følgende vises:
Klar, vi har allerede den offentlige nøkkelen ... nå må vi gi den til den vi vil (som eksemplet, gi den til kjæresten vår haha)
Det vi ønsker er det PC nr. 1 koble til PC nr. 2, allerede i PC nr. 1 vi gjorde alt ovenfor, i PC nr. 2 Vi har ikke gjort noe. Flink, PC nr. 2 har en IP-adresse for eksempel 10.10.0.5.
3. Vi legger inn PC nr. 1 følgende:
- ssh-copy-id root@10.10.0.5
Hva dette gjør er å bare gi deg den offentlige nøkkelen til PC nr. 1 a PC nr. 2, det vil si det gir til PC nr. 2 den offentlige nøkkelen til PC nr. 1Mens PC nr. 1 han oppbevarer sin private nøkkel, vet du; den nøkkelen som ikke er gitt til noen. Det er viktig å ikke gjøre feil med brukeren, det vil si hvis brukeren “root"Det eksisterer ikke i PC nr. 2, det vil gi oss en feil. Det er viktig å være tydelig i hvilken bruker vi vil bruke til dette, i tillegg til at den brukeren som vi konfigurerer tilgang uten passord med, vil være det samme som vi får tilgang til i fremtiden. Når dette er gjort, bør det se slik ut:
I forrige trinn må de legge inn brukerens passord PC nr. 2.
Og voila ... alt er konfigurert ????
Som det ser ut for oss i terminalen, la oss teste om alt virkelig fungerte 100% OK. For å teste setter vi:
- ssh root@10.10.0.5
Hvis de vil ha tilgang til en annen datamaskin også uten alltid å skrive inn et passord (PC nr. 3 for eksempel), vi gir det bare vår offentlige nøkkel, og det er det, det vil si når vi har gjort trinnet #1 y #2 vi trenger ikke gjøre det lenger. Hvis vi vil ha tilgang PC nr. 3 for eksempel, som har etter IP 10.10.99.156 vi bare sette:
- ssh root@10.10.99.156
Så langt opplæringen.
Forklar at sikkerhetsnivået når vi snakker om SSH er veldig høyt, metaforen som jeg forklarte noen trinn med (å gi nøkkelen til kjæresten vår), er kanskje ikke den mest passende haha, siden kjæresten vår kunne gi nøkkelen til noen andre. Når vi snakker om SSH, er sikkerhetsprinsippene enkle å forklare når vi prøver å få tilgang til datamaskinen vår (PC nr. 1) sjekker om det i PC # 2 er en offentlig nøkkel til datamaskinen vår (i dette tilfellet er det, fordi vi konfigurerer det på den måten), så hvis det er en, er det enkelt, sjekk om den offentlige nøkkelen er identisk med den private nøkkelen vår (den som vi ga det ikke til noen). Hvis nøklene er identiske, gir det oss tilgang, ellers og som et sikkerhetsmål, lar det oss ikke få ekstern tilgang til den andre datamaskinen.
Så nå vet du ... å gi kjæresten vår husnøkkelen er ikke den tryggeste tingen, men å dele nøkler og få tilgang til en annen datamaskin eksternt via SSH er trygt ^ _ ^
Tvil eller spørsmål, klager eller forslag, gi meg beskjed.
Hilsen til alle.
43 kommentarer, legg igjen dine
Jeg forstår virkelig ikke hvordan du er så paranoid om sikkerhet gjør en slik feil. Hvis du er i trinnet der det står:
Enter passphrase (empty for no passphrase)
Vi skriver ikke noe, vi går tapt hvis en bruker klarer å få tilgang til PC-en vår og åpne en terminal, siden den automatisk kjøres:
ssh root@10.10.0.5
Den kommer inn uten å be om passord.
Hvis noen får tilgang til den bærbare datamaskinen min, ja, vil de kunne få tilgang til PC nr. 2 uten å måtte oppgi passordet, men som du sier, jeg er paranoid om sikkerhet, tror du virkelig at det å få tilgang til den bærbare datamaskinen min er noe så enkelt? HA HA.
Når jeg alltid står opp, låser jeg alltid skjermen, ellers etter 30 sekunder er det ingen aktivitet på den bærbare datamaskinens mus eller tastatur, den vil fortsatt låse 😉
Hvis noen stjeler den bærbare datamaskinen din, uansett hvor mye økten er blokkert, er det trivielt å få tilgang til filene, et spørsmål om 5 minutter med en Linux-oppstartbar fra USB. Og når filene er tilgjengelige, siden den private nøkkelen er ubeskyttet, kan du bruke den direkte, eller bedre kopiere den og få tilgang til noen av serverne dine komfortabelt hjemmefra. Faktisk er prosessen så rask at du ikke engang trenger å vite. På 5 minutter går du på do eller hva som helst, alt kan gjøres.
Den trygge måten er å sette et passord på den private nøkkelen, og deretter bruke ssh-agent slik at den husker passordet for hele økten (bare ssh-add). På denne måten vil det bare be om passordet første gang, og i praksis vil du ha en forbindelse uten passord 90% av tiden, i tillegg til å være beskyttet mot tyveri eller innbrudd.
Er det trivielt å få tilgang til filene? Har du noen gang hørt om full diskkryptering? (luks + cryptsetup)
Ja, selvfølgelig, hvis du har kryptert hele disken, er det en annen sak, men 90% av brukerne gjør det ikke fordi de ikke vet hvordan de skal gjøre det, og i mange tilfeller kompenserer det ikke engang dem. I motsetning til det å ikke lagre ukryptert passord eller ubeskyttede private nøkler på disk er noe alle kan gjøre, og generelt god praksis.
Å lagre ubeskyttede private nøkler på en kryptert disk er som å parkere bilen din og la dørene være åpne, men å ansette en sikkerhetsvakt med en doberman for å beskytte deg. Det fungerer, ja, men det er mye enklere og mer effektivt å låse den direkte.
MMm gjør ikke så mye til blowjob, selv om de kan opprette et virtuelt grensesnitt, tildele en IP og koble til den virtuelle IP, så selv om de fjerner nøkkelen, vil de ikke kunne finne maskinen fordi nøkkelen bare fungerer for en viss IP. Det kommer også an på hva de vil ha, det fungerer perfekt for meg slik kameraten beskriver det, jeg har en privat server hjemme, jeg trenger ikke øke sikkerheten fordi den har en VPN konfigurert.
Og kan alt dette gjelde en Windows-terminal som må koble til flere * NIX-er?
Jeg har kitt, men jeg kan også bruke Securecrt (nå har jeg skriptet)
I Windows-terminalen (cmd) er jeg overbevist om at nei, det vil ikke være mulig der.
Men hvis du bruker Putty, kan du prøve det, det kan fungere.
Hilsen og velkommen til siden vår 😀
Putty godtar allerede parameteren -pw i flere kommandoer. (eks: -pw12345)
Super Putty er faktisk kulere enn bare vanlig Putty. (Det er en ramme for Putty)
Så du trenger ikke å si det.
Takk for innlegget, veldig nyttig. Det er litt kjedelig å logge på SSH for alt.
Hei og tusen takk for besøket og kommentaren 🙂
Ingenting venn, en glede å vite at det var nyttig ... hvis vi kan hjelpe deg på noen annen måte, er vi mer enn glade 😉
Hilsen og velkommen til siden.
Jeg må koble til en windonws-pc fra Linux som jeg gjør fra terminalen min
Utmerket .. det inspirerer virkelig å se denne typen opplæringsprogrammer, det gjør at jeg også vil bidra med mine erfaringer som allerede er forenklet, slik at samfunnet kan dra nytte av dem. Tusen takk fra El Salvador.
Jeg kobler til en maskin med ubuntu til en som har debian, men det gir meg en feil der den ikke kan autentiseres, og derfor ber den meg om passordet .. hvorfor vil dette skje? Kan det være at versjonene av ssh-keygen er forskjellige, eller hva som skjer?
Sett her feilen det gir deg for å kunne hjelpe deg bedre 😉
Du kan også prøve å sette dette i en terminal:
sudo mv $HOME/.ssh/known_hosts /opt/
Hva dette gjør er å rense tilkoblingene (tilkoblingshistorikk) SSH du har hatt.
Og hvis jeg ønsket å bruke den samme offentlige nøkkelen for flere servere, kan jeg gjøre det, eller må jeg opprette en nøkkel for hver server jeg vil ha tilgang til? Jeg skal prøve det uansett, men på en ubrukelig server for ikke å ødelegge noe nyttig.
Takk og hilsen.
Ettersom jeg har laget den på den bærbare datamaskinen min, er den en annen nøkkel for hver server, faktisk tror jeg det ikke er mulig å bruke den samme nøkkelen i flere ... fordi ID-en til hver server er unik, som et fingeravtrykk 🙂
Hilsen
Hei sandens herre. Jeg har lest nøkler, og jeg fant ut at nøkkelparet (offentlig og privat) tjener serverklienten til å sende og motta utfordringer og dermed identifisere hverandre, så det har ingenting å gjøre med passordet du bruker for å få tilgang til serveren, brukes sistnevnte til å "lime inn" den offentlige nøkkelen i de pålitelige på serveren. Så du kan bruke den i så mange du vil eller trenger.
Jeg vet ikke om jeg forklarte meg, men vitsen er at for å kunne bruke nøkkelparet ditt på andre servere, etter å ha fulgt veiledningen din, må du bare gjøre:
ssh-copy-id other.user@otra.ip
skriv passordet for denne andre serveren
Og klar.
Hilsen
Hei, takk for guiden, det var den eneste som hjalp meg. Nå som jeg vil gjøre det på et annet par datamaskiner får jeg følgende:
$ ssh-copy-id -p 4000 lm11@148.218.32.91
Dårlig port 'umask 077; test -d ~ / .ssh || mkdir ~ / .ssh; katt >> ~ / .ssh / autoriserte_taster '
Takk for hjelpen.
Jeg gjorde det du fortalte oss, men det ber meg stadig om passordet. Jeg avklarer denne forbindelsen jeg lager mellom to Linux Red Hat-servere ... Hva mer kan det være?
Jeg har allerede sett på / etc / ssh / sshd_config
Jeg startet allerede begge serverne på nytt
PC2 = Linux Red Hat 6.4
PC2 = Linux Red Hat 5.1
Ssh-tjenesten må være konfigurert riktig (/ etc / ssh / sshd_config-fil på PC2) for at den skal fungere.
korreksjon…
PC1 = Centos 6.4
PC2 = Red Hat 5.1
Hei kolleger, jeg har behov for å etablere et tillitsforhold mellom 1 Linux Centos 5.3-server og en Unix Sco5.7, men jeg har problemet at når jeg gjør trinn 3 for å kopiere nøkkelen fra Linux til Unix, får jeg meldingen / usr / bin / ssh-copy-id: FEIL: Ingen identiteter funnet, hvorfor kan det være?
Takk
Jeg har fulgt veiledningen trinn for trinn. Det gir meg ingen feil, men til slutt når jeg kobler fra PC1 til PC2, blir det stadig spurt om rotpassordet hver gang jeg kobler til.
Er det noen som tenker hva det kan være?
Det ser ut til at du etter å ha generert nøkkelen må utføre ssh-add slik at godkjenningsagenten kan bruke den.
Hvordan sletter jeg tilgangsnøkkelen?
Tusen takk, det fungerte perfekt
Tusen takk for guiden! Det er veldig enkelt, og det kommer godt med når du har serverne dine der ute og ikke trenger å skrive inn nøkler og dermed automatisere ting 😀
Takk.
Jeg var ikke klar over bruken av ssh-copy-id, og det har vært ganske automatisk.
Sannheten er at jeg var opp til punktet med å skrive passordet, så det jeg gjør er å lagre det med en DEFAULT-omskrivning, som opprettholdes under økten.
Jeg har ikke noe imot å skrive den en gang hver gang jeg slår på PC-en, rullen må sette den hver gang den kobles fra eller sånt.
SSH Ingen Jutsu!
Hallo
god opplæring ... men hvis jeg vil formidle informasjon ??? hvordan kan jeg gjøre det?
Hei, ditt bidrag er veldig interessant, men jeg er i tvil om et lignende emne
Hei.
Prøv trinnene ovenfor, men når du prøver å kopiere nøkkelen til server 2 (PC2), forteller den meg at kommandoen ikke eksisterer.
bash: ssh-copy-id: kommandoen ble ikke funnet
Kan jeg kopiere nøkkelen manuelt?
Utmerket!! Jeg lette etter en så enkel forklaring og den fungerte perfekt
takk!
Utmerket bidrag.
Tusen takk det har hjulpet meg veldig.
Hei, jeg vil gjerne vite om det er en måte å gjøre denne ssh-copy-id-kommandoen på. Siden jeg installerer Open ssh for Windows, fungerer ssh for meg i DOS, men den har ikke denne kommandoen ssh-copy-id. Jeg vil gjerne vite hvordan du sender denne offentlige nøkkelen til den andre linux-serveren (linux-serveren). Takk så mye.
Hei. Jeg må etablere et tillitsforhold mellom en Linux-server og en Windows-maskin. Installer SSH for Windows, og det fungerer for meg. Men denne ssh-copy-id-kommandoen er ikke tilgjengelig i dette verktøyet.
De vet om en annen måte å gjøre det uten å bruke ssh-copy-id.
Tusen takk for kommentarene dine.
Men spørsmålet om dette er å kunne koble til uten passord. Hvis vi setter en passordfrase, vil det be oss om at passet skal koble til, og det var ikke målet med dette
Det har vært veldig nyttig for meg for datamaskinens fp-modul, takk 🙂
Takk skal du ha!!!
Noen bekymrer seg for hvor irriterende det kan være å måtte angi passordet (passordfrase), for det, som de sa ovenfor, er det «user-Agent», og at jeg også har det konfigurert med Keepass og dets Auto-Type-funksjon, så Jeg bare påkaller terminalen og med kombinasjonen av nøkler som de har konfigurert klare, har jeg også "aliaser" for hver forespørsel, og alt er veldig enkelt.
God opplæring.
Ha det veldig gøy !!
Veldig god info 🙂 men jeg har et spørsmål ...
Jeg har PC10 som er der jeg oppbevarer informasjonen, informasjonen sendes fra pc1 - pc2 - pc3, til PC10, hvordan kan jeg få pc1, pc og pc3 til å bruke samme nøkkel for å få tilgang til PC10 uten nøkkel.
Jubel…
Hvordan kan jeg liste opp hva som er på machine1 i machine2's bash uten å gå til ssh ip @ hosts til machine1's bash. Jeg vet ikke om jeg forstår xD
10 år har gått siden denne publikasjonen, og jeg fortsetter å besøke den når jeg trenger den. Som noen andre veiledninger her har de stått tidstesten. Takk og hilsen!