Ubuntu SSH seadistamine ja turvamine: Täielik juhend algajale ja edasijõudnule

目次

1. Sissejuhatus

Ubuntu puhul SSH seadistamine on äärmiselt oluline kaugserveri haldamiseks. SSH (Secure Shell) on protokoll, mis pakub turvalist krüpteeritud suhtlust ja võimaldab laialdaselt ligi pääseda serveritele, käivitada käske ja edastada faile kaugelt.

Selles artiklis selgitatakse põhjalikult, kuidas Ubuntu süsteemis SSH-d seadistada – alates põhiinstallatsioonist kuni arenenud turvameetmeteni.

1.1 Miks seadistada SSH Ubuntu peal?

1.1.1 Mis on SSH?

SSH (Secure Shell) on protokoll turvaliseks andmesideks võrgus. Tavaliselt kasutatakse SSH-d kaugserverisse sisselogimiseks, failide ülekandmiseks ja tunneldamiseks (port forwarding). Erinevalt traditsioonilistest Telnetist ja FTP-st on SSH andmeedastus alati krüpteeritud ning seega palju turvalisem.

1.1.2 Millal vajate Ubuntu peal SSH-d?

Ubuntu kaugjuhtimise peamised stsenaariumid on järgmised:

  • Pilveserverite haldus: AWS, GCP, Vultr ja teised pilveteenused – ühendus serveriga toimub SSH kaudu.
  • LAN-võrgus kaugjuhtimine: Ettevõtte sisemised serverid või arendusmasinad – SSH-ga saab teha tööd eemalt.
  • IoT-seadmete haldamine: Raspberry Pi jt manusseadmed – kaugjuhtimine SSH abil.

Vaikimisi on Ubuntu installatsioonil SSH server keelatud, mistõttu tuleb SSH kasutamiseks see käsitsi paigaldada ja seadistada.

2. SSH põhiline seadistamine

Ubuntu puhul tuleb SSH-server (OpenSSH) paigaldada ja õigesti seadistada. Selles osas kirjeldame samm-sammult SSH paigaldust, põhiseadistusi, tulemüüri (UFW) konfigureerimist ning ühenduse loomist.

2.1 OpenSSH paigaldamine ja käivitamine

2.1.1 Mis on OpenSSH?

OpenSSH (Open Secure Shell) on avatud lähtekoodiga tarkvara, mis rakendab SSH protokolli. Lisaks kaugühendusele toetab see turvalist failiedastust (SCP, SFTP) ja portide edastamist.

2.1.2 OpenSSH paigaldamine

Ubuntul ei ole SSH server vaikimisi paigaldatud. Installige OpenSSH järgmise käsuga:

sudo apt update && sudo apt install -y openssh-server

See käsk uuendab paketiloendi ja paigaldab OpenSSH serveri.

2.1.3 SSH serveri käivitamine ja automaatne käivitamine

Paigalduse järel käivitage SSH server ning seadistage automaatne käivitamine:

sudo systemctl enable --now ssh

enable teeb SSH teenuse automaatselt aktiivseks iga OS-i alglaadimise korral.

2.1.4 SSH töö kontrollimine

Kontrollige SSH serveri tööseisundit:

systemctl status ssh

Kui näete näiteks järgmist tulemust, töötab SSH korrektselt:

● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2025-02-28 12:00:00 UTC; 5min ago

Kui kuvatakse inactive (dead) või failed, käivitage SSH käsitsi:

sudo systemctl start ssh

2.2 Tulemüüri (UFW) seadistamine

Ubuntu sisaldab lihtsat tulemüüri UFW-d (Uncomplicated Firewall). SSH-ühenduste lubamiseks seadistage UFW järgmiselt.

2.2.1 UFW oleku kontroll

Vaadake, kas tulemüür on aktiivne:

sudo ufw status

Näide, kui UFW on keelatud:

Status: inactive

Näide, kui UFW on aktiivne:

Status: active
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere

2.2.2 SSH liikluse lubamine

SSH vaikimisi porti (22) lubamiseks:

sudo ufw allow ssh

Või selgelt porti määrates:

sudo ufw allow 22/tcp

2.2.3 UFW lubamine

Kui UFW on keelatud, lülitage see sisse:

sudo ufw enable

Enne lubamist veenduge, et SSH port on avatud, muidu võite end lukustada.

2.2.4 Seadistuste kontroll

Kontrollige, kas SSH liiklus on tõesti lubatud:

sudo ufw status verbose

Näide:

Status: active
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)

Kui see kuvatakse, on SSH ühendus lubatud.

2.3 SSH-ga ühenduse loomine

Kui server töötab, proovige ühendust luua kliendist.

2.3.1 Linux/macOS-ilt ühendamine

Avage terminal ja kasutage:

ssh kasutajanimi@serveri-IP

Näide:

ssh user@192.168.1.100

Esimesel ühendusel võib kuvada hoiatus:

The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)?

Sisestage yes ja vajutage Enter.

2.3.2 Windowsist ühendamine

Windowsis saab kasutada PowerShelli või PuTTY-t.

Kui kasutate PowerShelli:
Windows 10 ja uuemad toetavad SSH-d sisseehitatud kliendiga:

ssh kasutajanimi@serveri-IP

Kui kasutate PuTTY-t:

  1. Laadige alla ametlikult veebilehelt PuTTY ja installige see.
  2. Avage PuTTY, sisestage Host Name (or IP address) lahtrisse serveri IP.
  3. Valige Connection type väärtuseks SSH ja vajutage Open.
  4. Sisestage kasutajanimi ja parool.

Kokkuvõte

Selles osas käsitlesime Ubuntu puhul SSH põhilist seadistust:

  • Kuidas paigaldada ja käivitada OpenSSH serverit
  • Kuidas lubada SSH ühendused UFW tulemüüri kaudu
  • Kuidas ühendada SSH-ga Linux/macOS-ilt ja Windowsist

3. SSH turvalisuse tugevdamine

SSH võimaldab mugavat kaugjuhtimist, kuid vaikeseadetes võib olla turvariske. Ründajad võivad proovida toore jõu (brute-force) rünnakuid või skaneerida avatud porte. Seepärast on oluline kasutada tugevaid turvaseadeid.

3.1 Root kasutaja sisselogimise keelamine

Vaikimisi võib Ubuntu SSH lubada root kasutajaga sisselogimist. Kuna rootil on täielikud süsteemiõigused, on ta ründajate peamine sihtmärk. Turvalisuse tõstmiseks keelake rooti SSH kaudu.

3.1.1 Seadistamise sammud

  1. Redigeerige SSH seadistusfaili /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
  1. Otsige rida ja muutke see järgmiseks:
PermitRootLogin no
  1. Salvestage ja taaskäivitage SSH teenus:
sudo systemctl restart ssh
  1. Kontrollige, kas muudatus kehtib:
sudo grep PermitRootLogin /etc/ssh/sshd_config

Kui väljund on PermitRootLogin no, on seadistus rakendatud.

3.2 Parooliga autentimise keelamine ja avaliku võtmega autentimine

SSH puhul on turvalisem kasutada võtmega autentimist, mitte paroole. See vähendab jõurünnakute riski.

3.2.1 SSH võtme loomine

Loo kohalikus arvutis SSH võti:

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa

Tulemuseks on kaks faili:

  • Privaatvõti (id_rsa) – hoia ainult enda masinas, ära jaga!
  • Avalik võti (id_rsa.pub) – lisa see serverile.

3.2.2 Avaliku võtme kopeerimine serverisse

Kopeeri avalik võti serverisse:

ssh-copy-id kasutajanimi@serveri-IP

3.2.3 Parooliautentimise keelamine

Muuda SSH seadistusfailis:

sudo nano /etc/ssh/sshd_config

Leia rida ja muuda see:

PasswordAuthentication no

Salvesta ja taaskäivita SSH:

sudo systemctl restart ssh

3.3 Ainult kindlate kasutajate SSH ligipääs

Turvalisuse huvides võid piirata, millised kasutajad tohivad SSH kaudu ühenduda.

3.3.1 Seadistamise sammud

  1. Redigeeri /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
  1. Lisa lubatud kasutajate nimed:
AllowUsers kasutaja1 kasutaja2
  1. Taaskäivita SSH teenus:
sudo systemctl restart ssh

3.4 SSH porti muutmine

Vaikeport 22 on ründajate sihtmärk. Muuda seda kõrgema turvalisuse jaoks.

3.4.1 Kuidas muuta porti

  1. Ava /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
  1. Leia ja muuda port näiteks Port 2200
Port 2200
  1. Taaskäivita SSH:
sudo systemctl restart ssh

3.4.2 Tulemüüri seadistamine uuele pordile

Luba uus port UFW-s:

sudo ufw allow 2200/tcp

Kontrolli olekut:

sudo ufw status

3.5 Fail2Ban kaitseks jõurünnakute vastu

Fail2Ban blokeerib IP-aadresse, mis teevad mitu nurjunud sisselogimiskatset.

3.5.1 Fail2Ban paigaldamine

sudo apt install fail2ban -y

3.5.2 Seadistamine

Kopeeri ja muuda Fail2Bani seadistus:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

Muuda näiteks:

[sshd]
enabled = true
port = 2200
maxretry = 3
findtime = 600
bantime = 3600

3.5.3 Fail2Ban taaskäivitamine

sudo systemctl restart fail2ban

3.5.4 Bannitud IP-de kontrollimine

sudo fail2ban-client status sshd

Kokkuvõte

Selles osas selgitasime SSH turvalisuse tugevdamise peamisi meetmeid:

  • Root kasutaja keelamine
  • Parooliautentimise asemel võtmeautentimise kasutamine
  • Kasutajate piiramine
  • SSH porti muutmine
  • Fail2Ban paigaldamine ja seadistamine

Nende sammude rakendamisel saate palju turvalisema SSH keskkonna.

4. SSH täiustatud seadistused

Kui põhilised seadistused ja turvameetmed on tehtud, saab SSH-d veelgi võimsamaks ja paindlikumaks muuta edasijõudnud seadistustega. Selles osas kirjeldame Ubuntu 22.10-st alates ssh.socket haldust, SSH tunnelite (port forwarding) loomist, mitmel pordil kuulamist ja ligipääsu piiramist ainult kindlatele IP-aadressidele.

4.1 Ubuntu 22.10 ja uuemates – ssh.socket kasutamine

Alates Ubuntu 22.10-st võib SSH teenust hallata ssh.service asemel ssh.socket. See tähendab, et SSH käivitatakse ainult siis, kui keegi ühendub – see säästab ressursse.

4.1.1 ssh.socket staatuse kontroll

Kontrolli, kas ssh.socket on aktiivne:

sudo systemctl status ssh.socket

Näide (aktiivne):

● ssh.socket - OpenSSH Server Socket
   Loaded: loaded (/lib/systemd/system/ssh.socket; enabled; vendor preset: enabled)
   Active: active (listening) since Fri 2025-02-28 12:00:00 UTC

4.1.2 ssh.socket lubamine või keelamine

Kui ssh.socket pole aktiivne, aktiveeri see:

sudo systemctl enable --now ssh.socket

Kui soovid kasutada traditsioonilist ssh.service, siis:

sudo systemctl disable --now ssh.socket
sudo systemctl enable --now ssh.service

4.2 SSH tunneldamine (port forwarding)

SSH tunnel võimaldab turvaliselt suunata võrguliiklust – näiteks privaatset andmebaasi või veebiserverit ainult lubatud klientidele.

4.2.1 Kohalik port forwarding

Turvaline ligipääs näiteks MySQL serverile:

ssh -L 3306:localhost:3306 kasutaja@serveri-IP

4.2.2 Pöördport forwarding

Lokaalse teenuse avalikustamine kaugserveri kaudu:

ssh -R 8080:localhost:80 kasutaja@serveri-IP

4.2.3 Dünaamiline port forwarding (SOCKS proxy)

SSH-d saab kasutada SOCKS proxyna anonüümseks internetikasutuseks:

ssh -D 1080 kasutaja@serveri-IP

4.3 SSH mitmel pordil kuulamine

Vaikimisi kuulab SSH ainult ühel pordil (22), kuid võid seadistada mitmel pordil.

4.3.1 Sammud

  1. Ava /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_config
  1. Lisa järgmised read:
Port 22
Port 2200
  1. Taaskäivita SSH:
sudo systemctl restart ssh
  1. Luba uus port tulemüüri kaudu:
sudo ufw allow 2200/tcp

4.4 Ainult kindlate IP-aadresside SSH lubamine

Tugevda turvalisust lubades SSH ainult teatud IP-delt.

4.4.1 /etc/hosts.allow seadistamine

Ava fail ja lisa lubatud IP:

sudo nano /etc/hosts.allow
sshd: 192.168.1.100

4.4.2 /etc/hosts.deny seadistamine

Keela kõik muu:

sudo nano /etc/hosts.deny
sshd: ALL

Nii saavad ühenduda ainult hosts.allow failis määratud IP-d.

Kokkuvõte

Selles osas tutvustasime SSH täiustatud seadistusi:

  • Ubuntu 22.10-st alates ssh.socket haldus
  • SSH tunneldamise erinevad viisid
  • Mitmel pordil SSH kuulamine
  • Ligipääsu piiramine konkreetsetele IP-aadressidele

Nende meetmetega saab SSH-d kasutada turvalisemalt ja paindlikumalt.

5. SSH tõrkeotsing

Isegi korrektsel seadistamisel võib SSH-ga esineda ühendusprobleeme. Siin käsitleme sagedasemaid tõrkeid ja nende lahendusi.

5.1 Kui SSH ei ühendu

Kui kuvatakse näiteks Connection refused või aegumine, võivad põhjused olla järgmised.

5.1.1 SSH teenus ei tööta

Kontrolli SSH staatust:

sudo systemctl status ssh

Lahendus:

  • Kui inactive (dead) või failed, taaskäivita SSH:
sudo systemctl restart ssh
  • Vajadusel luba automaatne käivitamine:
sudo systemctl enable ssh

5.1.2 Port pole avatud või on muudetud

Kui porti on muudetud, lisa ühenduskäsku -p:

ssh -p 2200 kasutaja@serveri-IP

Kontrolli avatud porte:

sudo netstat -tulnp | grep ssh

või:

ss -tulnp | grep ssh

5.1.3 UFW tulemüüri kontroll

Kontrolli UFW olekut:

sudo ufw status

Lahendus, kui SSH pole lubatud:

sudo ufw allow 22/tcp

Kui kasutad muud porti, asenda port vastavalt:

sudo ufw allow 2200/tcp

5.2 Autentimisvead

5.2.1 Kasutajanimi või parool vale

Kontrolli, et kasutad õiget kasutajanime:

ssh kasutaja@serveri-IP

5.2.2 Avalik võti pole õigesti seadistatud

Kontrolli, et ~/.ssh/authorized_keys failis on sinu avalik võti:

cat ~/.ssh/authorized_keys

5.2.3 Õiged failide õigused

SSH nõuab rangeid õiguseid:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Samuti /home/kasutaja kataloogi õigused:

chmod 755 /home/kasutaja

5.3 Ebastabiilne või katkestav SSH ühendus

Kui ühendus katkeb regulaarselt, võib abi olla järgmistest seadistustest.

5.3.1 Serveripoolsed seaded

Muuda /etc/ssh/sshd_config:

ClientAliveInterval 60
ClientAliveCountMax 3

Taaskäivita SSH:

sudo systemctl restart ssh

5.3.2 Kliendipoolsed seaded

Lisa lokaalsesse ~/.ssh/config faili:

Host *
    ServerAliveInterval 60
    ServerAliveCountMax 3

5.4 SSH logide kontrollimine

Tõrkeotsingu jaoks vaata logisid.

5.4.1 Reaalajas logid

sudo journalctl -u ssh -f

5.4.2 Vanemad logid

sudo cat /var/log/auth.log | grep ssh

Või otsi kindlat veateadet:

sudo grep "Failed password" /var/log/auth.log

Kokkuvõte

Selles osas tõime välja SSH sagedasemad probleemid ja nende lahendused:

  • Kas teenus töötab?
  • Kas õige port on avatud?
  • Kas tulemüür laseb läbi?
  • Kas võtmeautentimine on õigesti seadistatud?
  • Kas katkestuste probleemid on lahendatud?
  • Kuidas leida infot logidest?

Enamiku SSH probleemidest saab lahendada õigete seadistuste ja logianalüüsiga.

6. KKK (Korduma kippuvad küsimused)

Toome välja SSH seadistamise ja kasutamise tüüpilised küsimused ning nende vastused.

6.1 Mida teha, kui SSH ühendus aegub?

Kui ühendus katkeb, kasuta järgmisi seadistusi.

6.1.1 Serveripoolne seadistus

Muuda /etc/ssh/sshd_config:

ClientAliveInterval 60
ClientAliveCountMax 3

Taaskäivita SSH:

sudo systemctl restart ssh

6.1.2 Kliendipoolne seadistus

Lisa ~/.ssh/config faili:

Host *
    ServerAliveInterval 60
    ServerAliveCountMax 3

6.2 Mida teha, kui unustan SSH parooli?

6.2.1 Kui saad serverisse füüsiliselt ligi

  1. Käivita server single-user või recovery režiimis
  2. Muuda parooli:
passwd kasutaja
  1. Taaskäivita süsteem

6.2.2 Kui füüsiline ligipääs puudub (VPS vms)

  • Kasuta VPSi konsoolifunktsiooni
  • Kasuta SSH võtmeautentimist, kui see oli varem seadistatud

6.3 Kuidas kasutada SSH-d Windowsis?

6.3.1 PowerShelliga

Windows 10 ja uuemates saab kasutada:

ssh kasutaja@serveri-IP

6.3.2 PuTTY-ga

  1. Laadi alla ja installi PuTTY
  2. Sisestage Host Name (or IP address) lahtrisse serveri IP
  3. Vali SSH ühenduse tüübiks ja vajuta Open
  4. Sisestage kasutajanimi ja parool

6.4 Kuidas seadistada SSH Ubuntu WSL (Windows Subsystem for Linux) keskkonnas?

WSL-is SSH serveri käivitamiseks:

6.4.1 SSH serveri paigaldamine

sudo apt update && sudo apt install openssh-server

6.4.2 Seadistamine

Muuda /etc/ssh/sshd_config:

PasswordAuthentication yes

Käivita SSH käsitsi (systemd puudub):

sudo service ssh start

6.5 Millised on olulised täiendavad turvameetmed peale SSH seadistust?

6.5.1 Fail2Ban kasutamine

Paigalda Fail2Ban:

sudo apt install fail2ban -y

Muuda /etc/fail2ban/jail.local:

[sshd]
enabled = true
port = 22
maxretry = 3
findtime = 600
bantime = 3600

Taaskäivita Fail2Ban:

sudo systemctl restart fail2ban

6.5.2 SSH porti muutmine

Muuda /etc/ssh/sshd_config:

Port 2200

Taaskäivita SSH ja luba uus port UFW-s:

sudo ufw allow 2200/tcp

6.6 Kuidas jälgida SSH logisid reaalajas?

sudo journalctl -u ssh -f

Või vanemate logide jaoks:

sudo cat /var/log/auth.log | grep ssh

6.7 Kuidas muuta SSH kasutamist mugavamaks?

6.7.1 .ssh/config lihtsustab ühendusi

Kui ühendud sageli samade serveritega, lisa ~/.ssh/config fail:

Host minuserver
    HostName 192.168.1.100
    User kasutaja
    Port 2200
    IdentityFile ~/.ssh/id_rsa

Nüüd saad ühendada lihtsalt:

ssh minuserver

6.7.2 ssh-agent kasutamine

Et mitte iga kord võtme parooli sisestada:

eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa

Kokkuvõte

Selles jaotises tõime välja SSH korduma kippuvad küsimused ja lahendused:

  • SSH katkestuste lahendused
  • Parooli taastamine
  • SSH kasutamine Windowsis ja WSL-is
  • Olulised turvameetmed
  • Kuidas jälgida logisid
  • Mugavuste ja lihtsustamise nipid

Kui rakendad siinsed soovitused, saad turvalise ja efektiivse SSH halduskeskkonna!

Seotud artiklid

Seotud

1. Sissejuhatus SSH kasutamine Ubuntus võimaldab turvaliselt kaugelt serveritele ja arvutitele ligi pääseda ja neid hal[…]