SSH är det vanliga sättet man brukar använda för att kommunicera mellan datorer i Linux.
(det utvecklades från början till BSD, Linux syster-OS som också bygger på UNIX)
Detta kräver alltså TVÅ datorer och att dessa ser varandra på nätet.
Det borde räcka med med två laptops på ens hem-wifi.
Först måste vi ta reda på vad de har för IP-adress. Och för att göra det måste vi veta vad Linux döpt nätverkskorten till.
För att lista filerna i en katalog skriver man:
$ ls
I Linux är ALLT "filer", även fysiska saker.
Vill man lista alla enheter skriver man:
$ ls /dev
Vill man lista alla processer skriver man:
$ ls /proc
Och vill man lista nätverkskorten:
$ ls /sys/class/net
Förr använde Linux logiska namn som eth0 för ett vanligt nätverkskort som använde ethernet och wlan1 för trådlöst WiFi.
Numera brukar man använda mer kryptiska namn.
På min gamla laptop har jag:
eth0 lo wlan0.
På min nya laptop har jag:
lo wlp1s0.
Alla datorer som har nätverk har
lo, Det är så datorn refererar till sig själv. Den egna datorn,
lo, har IP 127.0.0.1, det är "hem"-adressen, eller "local".
Då jag inte vet vad ditt nätverkskort heter kommer jag konsekvent skriva
eth0, byt ut det mot vad ditt kort heter.
Nu ska vi ta reda på vad datorn heter på nätet:
$ ip address
Det går även bra att skriva
ip addr eller
ip a, de gör exakt samma sak.
Det listar alla nätverksanslutningar.
Först kommer lo som har inet 127.0.0.1.
Inet är IPv4, en vanlig IP-adress, d.v.s. fyra nummer mellan 0-255.
Inet6 är det nyare IPv6 som vi struntar i (nästan inga hemdatorer använder det).
Sedan kommer nästa nätverk som förhoppningsvis heter
eth0. Kom ihåg de fyra numren efter inet.
Vanliga hemnätverk brukar ha ett 192.168.0.XX-nät och jag kommer använda det i exemplen nedan. Byt ut det mot vad ditt nät och datorer heter.
Min ena dator har fått adressen 192.168.1.107 och den andra 192.168.1.109 - men jag kommer kalla dem för 192.168.0.10 och 192.168.0.100.
Försök pinga den ena datorn från den andra. Sitter jag framför 192.168.0.10 skriver jag:
$ ping 192.168.0.100
Förhoppningsvis får man ett svar i stil med:
64 bytes from 192.168.0.100: icmp_seq=1 ttl=64 time=3.45 ms
Man avslutar ping med
CTRL+C, annars fortsätter det i evighet.
Då har vi förhoppningsvis två datorer som ser varandra på nätet.
Nu ska vi se om vi har SSH installerat.
$ apt search openssh-client
min dator svarar:
Kod: Markera allt
openssh-client/focal-updates,focal-security,now 1:8.2p1-4ubuntu0.2 amd64 [installed,automatic]
secure shell (SSH) client, for secure access to remote machines
Den säger
[installed,automatic] vilket är vad jag vill se.
Sedan provar vi:
$ apt search openssh-server
Nu får jag svaret:
Kod: Markera allt
openssh-server/focal-updates,focal-security 1:8.2p1-4ubuntu0.2 amd64
secure shell (SSH) server, for secure access from remote machines
Här är paketet inte installerat.
Det vanliga i de flesta distros är att klienten är installerad, men inte servern.
I vissa distros finns bara ett paket som heter
openssh, det innehåller både klienten och servern.
Välj en dator som ska bli server och installera:
$ sudo apt install openssh-server
Det går utmärkt att installera servern på bägge maskinerna, det enda man behöver hålla reda på är att datorn man sitter vi är klient och datorn man inte sitter vid är server.
I nedanstående exempel är klienten 192.168.0.10 och 192.168.0.100 servern.
Ta en titt på vad det står i prompten i terminalerna i datorerna. Det borde stå något i stil med:
user@computer:path$
Förhoppningsvis har ni inte döpt datorerna till samma sak. Det är inget problem om de heter samma, men det är svårare att se på vilken maskin man är inloggad.
Nedan låter jag 192,168.0.10 ha
adam@client:~$ och 192.168.0.100 ha
bertil@server:~$.
På klienten skriver vi:
$ ssh user@server-ip
I mitt fall blir det:
$ ssh bertil@192.168.0.100
Första gången man ansluter får man ett meddelande i stil med:
The authenticity of host '192.168.1.107 (192.168.0.100)' can't be established.
ECDSA key fingerprint is SHA256:abcdefghijklmnopqrstuvwxyz.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Skriv
yes och tryck RETUR.
Skriv sedan användaren på serverdatorns lösenord och tryck RETUR.
Nu ska prompten ha ändrats till serverdatorn och kommandona du skriver utförs på servern, inte på klienten.
Det finns tre sätt att lämna servern (förutom att stänga terminalfönstret): skriva exit, logout, eller trycka CTRL+C.
Nu har det slutat regna och solen tittar fram så det får räcka för idag.
Nästa gång tänkte jag skriva om hur man ansluter från Windows, hur man flyttar filer mellan datorerna och hur man gör en säkrare anslutning med nycklar.
