Public Key + Windows + Centos 7.2

Hej v5
Jeg har lige kigget på denne guide. LINK, og den er rigtig god, men dersævrre køre jeg med Windows 10 som client pc, og guiden er lavet MAC ..
Jeg står meget snart at skal bruge en guide der virker for windows 10 samt centos7
Håber er en som kan hjælpe mig
M.v.h.
Thomas

Hej @Taxick
Den gode nyhed er, at teknologien er den samme - den "dårlige" er dog at du laver din private og offentlige (private & pub key) på en lidt anden måde.
Til Windows vil jeg altid rekommandere Putty. Det er faktisk en klient til Windows, som netop kan tilgå servere (eller computere med SSH) via en grafisk brugerflade. Til forskel fra Linux/Mac - hvor man normalt gør det igennem en terminal. Vi har lavet en lille "kom i gang video" før, omkring netop Putty. Som du kan finde lige her: https://v5.dk/blog/log-pa-din-linux-server-fra-windows-over-ssh.html
Når nu formaliteterne er på plads og du er i gang med at kunne logge på linux servere. (Om de har CentOS, Ubuntu, Debian osv. Er ikke vigtigt.) Så ville det jo være dejligt hvis du kunne lave en "nøgle" (pub og private key) som jeg gjorde i blogindlægget til Mac og Linux. Du følger faktisk guiden på nøjagtig samme måde. Du bruger i stedet bare Putty klienten... næsten. (OBS: Husk under installationen af Putty at få hele versionen med, den inkludere nemlig PuttyGen som er værktøjet du bruger på Windows for at lave et nøglepar som vi gjorde på Mac og Linux.)
Nu er det dog meget simpelt, efter du har lært lidt omkring Putty i forvejen. (Via linket oppe over, med tilhørende video.) Jeg kan ikke lige vise billeder da jeg ikke sidder ved en Windows maskine. Men jeg håber min information er god nok til at kunne følge.
- Start PuttyGen programmet. (Det kan findes ved at søge i Start Menuen.)
- Jeg ville bare lade den stå på standard indstillingerne i bunden. (SSH-2 RSA og 2048 bit.)
- Når du er sikker på at det står som du vil have det, trykker du ganske simpelt bare på "Generate" knappen.
- Den vil nu sige at du skal bevæge din mus i det blanke område for at lave noget der hedder entropy. (Det skulle ikke behøves at gøres længe, det er bare for at hjælpe programmet med at lave noget der virkelig er "random".)
- Du kan nu vælge at give din nøgle en passphrase (kodeord) eller ej: Det er helt op til dig.
Nu har du dine SSH keys og kan frit gå videre derfra det link du gav tidligere, hvor vi uploadede den offentlige (.pub key) nøgle.
Har du brug for mere information, så sidder vi klar her i forummet - ingen spørgsmål er dumme. Og jeg vil med glæde uddybe nærmere hvis det skulle behøves.
@dhh
d. 31.05.2016 kl. 06:04 Med venlige hilsner
Daniel H. Hemmingsen (@dhh)

Hej @db
Jeg har prøvet at følge din guide, men jeg har et problem når jeg forsøger at uploade den min key med: ssh-copy-id
Jeg har generaret det i puttygen, men når jeg prøver at uploade den, for jeg denne fejl.
[teamspeak@ts ~]$ ssh-copy-id -i teamspeak.pub [email protected].**.** -p 2563
/usr/bin/ssh-copy-id: ERROR: failed to open ID file 'teamspeak.pub': No such file or directory
[teamspeak@ts ~]$
Hvad gør jeg mon forkert?
Redigeret af
@Taxick
d. 31.05.2016 kl. 06:50

Hej @Taxick
Det ser ud til at du køre ssh-copy-id fra din Linux-server. Det skal køres fra din Windows-PC som så kan kopiere dit ID op til serveren.
Der findes rent faktisk nogle scripts der gør det muligt at kopiere ssh-copy-id funktinaliteten overpå Windows: https://github.com/VijayS1/Scripts/tree/master/ssh-copy-id
Men for at holde det helt simpelt, kan du også gøre det hele manuelt ved at uploade en fil med din key til serveren via SFTP.
1. Lav en ny tom fil på din PC der hedder: authorized_keys
2. Åbn din MinKey.pub fil, som du lavede med puTTY og kopier indholdet herfra over i den nye authorized_keys-fil. Brug evt. Notepad til at åbne filerne med og kopier indholdet.
3. Download og installeret en SFTP-klient til Windows, f.eks. den gratis WinSCP https://winscp.net/eng/download.php
4. Log på din Linux-server med WinSCP via SFTP (Secure FTP over SSH). Her bruges de samme oplysninger som når du logger på med SSH.
5. Gå ind i .ssh-mappen fra dit homedir, f.eks. /home/teamspeak/.ssh/
6. Træk filen authorized_keys over i .ssh mappen på serveren, som du gik ind i i punkt 5.
Dette burde løse problemet - og din SSH Key er nu "installeret" på serveren.
Med venlige hilsner Daniel Bahl (@db)
CEO – v5.dk ApS

Lige en ekstra ting man skal huske når man laver .ssh mappen selv under ens brugers home mappe. (~/.ssh) Er at give de rigtige file permissions. Du kan give file/directory (mappe) permissions direkte i SFTP programmet. (Højreklik og ændre permissions et sted der.) Eller i terminalen på serveren kan du skrive:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Det er noget som scripts såsom ssh-copy-id normalt gør for dig. Men ikke når du selv gør det manuelt. (Kommandoerne er som din teamspeak bruger - og ikke som root. Så du skal ikke bruge sudo, da det er din teamspeak bruger som er "owner", altså ejer filerne i dens home mappe.)
Den første linje ændre permissions til 700 for din .ssh mappe. (rwx, ---, ---)
Og den sidste linje ændre permissions på din authorized_keys fil til 600. (rw-, ---, ---)
Redigeret: Er du ikke skrap til permissions (rettigheder) og gerne vil vide hvad det faktisk betyder, har vi lavet en video i vores Linux serie omkring det som du kan se her: https://v5.dk/linux-server/linux-chmod-rettigheder-filer-mapper-forklaring-video.html Grunden til at du skal gøre det, er fordi det er sådan SSH på serveren er sat op. Og den vil ikke læse/authenticate dig uden at du gør det. (Sikkerhed.)
Redigeret af
@dhh
d. 31.05.2016 kl. 09:16 Med venlige hilsner
Daniel H. Hemmingsen (@dhh)

Jeg har lige et spørgsmål til - Håber det er ok
Hvis jeg nu gerne vil give flere adgang til serveren, skal texten fra den nye MinKey1.pub bare kopieres ind i bunden af authorized_keys eller hvordan fungere det?
Redigeret af
@Taxick
d. 31.05.2016 kl. 16:58

#6
Alle som vil have adgang med SSH nøgler. (Jeg går ud fra at du slog login med kodeord fra. Så kun nøgler kan bruges for at få adgang til selve serveren.) Skal alle have deres egen key.pub fil ind i authorized_keys filen. En linje for hver brugers nøgle som du vil "authenticate" med serveren. (SSH.) Så har du tre brugere med hver deres public key. (keynavn.pub.) Skal de alle have deres nøgle ind i authorized_keys filen, en bruger = en linje. Jeg håber at det giver mening.
Og vi er glad for at kunne hjælpe, det er jo det vi er her for.
@dhh
d. 31.05.2016 kl. 17:03 Med venlige hilsner
Daniel H. Hemmingsen (@dhh)

#8
Det er det som ssh-copy-id gør for dig, men du kan selvfølgelig gøre det manuelt ved at få hver en brugers public key. Som du vil give adgang til teamspeak brugeren på serveren via SSH.
Dejligt at det hjalp. Sig endelig til eller lav et nyt indlæg hvis der er andet som du gerne vil have svar på. Hold dig endelig ikke tilbage. Og hvem ved, måske endda andre brugere på v5.dk kan hjælpe dig også. I det tilfælde kan vi jo alle blive klogere. Hav en fortsat god tirsdag, må man holde varmen.
Og pøj pøj med projektet.
@dhh
d. 31.05.2016 kl. 17:19 Med venlige hilsner
Daniel H. Hemmingsen (@dhh)