Fjernkontrol af Linux

Fra Debianguiden
Skift til: Navigation, Søgning

SSH, som står for Secure SHell, er en sikker protokol-variant af telnet, og kan bruges til at logge ind på en maskine med en allerede eksisterende bruger, uden fysisk at sidde foran den. Hvis du bruger telnet og har mulighed for at skifte til SSH, bør du gøre det så hurtigt som muligt!

Brug af SSH

For at du kan etablere en SSH-forbindelse, kræver det at du har sat en SSH-server op på den pågældende maskine. Programmet findes i "ssh"-pakken, hvor sshd, SSH daemonen (serveren), også følger med. Syntaxen for SSH er følgende.

Du kan angive hvilken bruger du ønsker at logge ind med på den pågældende SSH-server:

bruger@debian:~$ ssh bruger@debianname

Men du kan også lade være med det. I såfald vil programmet bruge den aktuelle bruger som brugernavn:

bruger@debian:~$ ssh hostname

Herefter vil din maskine prøve at forbinde sig til 'hostname' (som er et rigtigt værtsnavn eller en ip-adresse du angiver). Du vil blive spurgt om password hvorefter du logger ind. Det hele foregår krypteret.


BEMÆRK: Det skal nævnes, af sikkerhedsmæssige årsager, at man ikke bør have en SSH-server kørende, hvis man ikke bruger den. Der er en vis sikkerhedsrisiko ved at have en sådan service kørende, som SSH. For eksempel kan den have exploits (huller der kan udnyttes), som gør at en uautoriseret person kan have mulighed for at logge ind på dit system, eller gøre andre utilsigtede ting.

Hvordan man logger ind med SSH, uden at skrive password

Hvis man arbejder meget imellem en eller flere maskiner, kan det være irriterende hele tiden at logge ind med sit password via ssh. Man kan dog gøre noget smart, således at man ikke bliver spurgt om password når man logger ind.

Det fungerer således, at hver bruger har en unik privat og public (offentlig) nøgle. Nøglerne passer sammen, således at den offentlige og den private nøgle matcher hinanden. Den private nøgle er hemmelig og må ikke fås af andre, da den derfor kan bruges til at tilgå dine systemer. Den offentlige nøgle kopieres til andre servere. Du kan se den offentlige nøgle som et nøglehul, mens den private er nøglen der kan låse det op.

Det første du skal gøre, er at genere din private og offentlige nøgle. Der findes 3 forskellige krypteringsformer. 'rsa1' er til version 1 af ssh-protokollen mens 'rsa' eller 'dsa' er til version 2 af denne. Her vil vi genere en dsa-nøgle:

bruger@debian:~$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_dsa): 
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/user/.ssh/id_dsa.
Your public key has been saved in /home/user/.ssh/id_dsa.pub.
The key fingerprint is:
3a:39:f3:29:2d:60:5d:f4:2c:aa:55:a7:2a:c0:80:6c bruger@debian

Bemærk at vi intet password skriver her - fordi vi ønsker ikke at blive spurgt om password når vi logger ind på maskinen. Men du må selvfølgelig gerne skrive et password hvis det er det du vil. Din private nøgle findes nu i .ssh/id_dsa i din hjemmemappe, mens den offentlige nøgle findes i ~/.ssh/id_dsa.pub.

Nu mangler der kun en sidste ting, nemlig at kopiere den offentlige nøgle til en anden maskine. Her kan vi bruge scp kommandoen:

bruger@debian:~$ scp .ssh/id_dsa.pub bruger@hostname:

Hvor 'bruger' er brugeren på den anden maskine, og 'hostname' er værtsnavnet eller ip-adressen til maskinen. Husk det sidste kolon! Ellers vil det ikke virke.

Efter at have udført denne kommando, har brugeren din id_dsa.pub fil liggende, men den skal lige omdøbes og kopieres til en anden mappe inden det virker, derfor skal du gøre følgende:

bruger@debian:~$ ssh bruger@hostname
bruger@hostname's password:
bruger@hostname:~$ mkdir .ssh
bruger@hostname:~$ mv id_dsa.pub .ssh/authorized_keys2

Herefter har brugeren på det andet system din offentlige nøgle, og når du næste gang vil forbinde dig til maskinen med det brugernavn, vil nøglerne passe og du kan logge ind uden at angive et password:

bruger@debian:~$ ssh bruger@hostname
bruger@hostname:~$

Og vupti, du kan nu arbejde lidt mere effektivt.

Det er muligt at have flere offentlige ssh-nøgler liggende hos en bruger, så folk fra flere forskellige steder kan logge ind uden at skulle kende det samme password. Hvis det er tilfældet, skal de offentlige ssh nøgler tilføjes til ~/.ssh/authorized_keys2. Det kan gøres således:

bruger@debian:~$ cat id_dsa.pub >> .ssh/authorized_keys2

>> betyder at der tilføjes til filen fremfor at overskrive.

PuTTY - en SSH/telnet klient til Windows

PuTTY er en gratis SSH/telnet klient til Windows som du kan bruge ligesom SSH-programmet beskrevet i det forrige afsnit.

Hvor du får fat på PuTTY? Det gør du på [http://www.chiark.greenend.org.uk/~sgtatham/putty/ PuTTY's hjemmeside]. Husk at hente den til den rigtige CPU-arkitektur (hvis du har et Pentium- eller AMD-system, er det "Intel x86").

Når du starter PuTTY møder du et vindue hvor du kan indstille en masse ting. For det meste er det ikke nødvendigt at ændre noget i indstillingerne, men vi vil dog anbefale dig at du lige kigger listen igennem. I det første indstillings-vindue kan du indtaste en IP adresse eller et værtsnavn, og vælge hvilken protokol du vil bruge. Hvis du skal oprette en forbindelse til en SSH-server skal du selfølgelig vælge "SSH". Så klikker du bare "Open", og vupti, du er forbundet.

Kopiering af filer med scp

'scp' står for Secure CoPy, og er et program som bruges til at kopiere filer over SSH-protokollen.

Syntaxen for 'scp' er:

bruger@debian:~$ scp [-P port] [[user@]host1:]file1 [...] [[user@]host2:]file2

For eksempel kopierer følgende kommando filen /home/foo/example.txt fra computeren "bar" med brugeren "foo", til den nuværende mappe:

bruger@debian:~$ scp foo@bar:/home/foo/example.txt .

Man kan selvfølgelig også kopiere den anden vej:

bruger@debian:~$ scp bar foo@hostname:~ 

(Ovenstående eksempel kopierer "bar", fra den nuværende mappe til hjemmemappen for "foo" fra "hostname" med brugeren "foo".


Brug af sftp

'sftp' står for Secure FTP og bruges til at oprette en ftp-session over SSH-protokollen.

'sftp' minder meget om 'scp', der er dog en forskel. 'sftp' giver mulighed for at logge ind med ssh, ligesom man logger ind på en ganske almindelig FTP-server.

Syntaxen for 'sftp' er følgende:

bruger@debian:~$ sftp [user@]host

Og hvis du vil bruge en anden port, end den der er standard:

bruger@debian:~$ sftp -oPort=24 [user@]host