OpenSSH
OpenSSH sisältyy Windows 10 ja Windows 11 käyttöjärjestelmiin. Sekä asiakas
(client) että palvelin (server) osiot on sisäänrakennettu Windowsiin, eikä suojattua
yhteyttä varten tarvita muita maksullisia laitteita, ohjelmistoja tai palveluita.
Menettelyt ovat järjestelmäriippuvaisia ja muuttuvat ajan saatossa. Siksi asiaa käsittelevät sivustot (myös tämä)
ovat osin viitteellisiä. Tässä esitetty menettely on todettu toimivaksi toukokuussa 2022.
Remote Desktop
Etätyöpöytäyhteys (Remote Desktop, RD) on Windowsin etäkäyttöteknologia, jonka avulla asiakas etäkäyttää verkossa
olevaa palvelinta.
Etätyöpöytä on yhden käyttäjän työkalu, eikä palvelinkoneen äärellä tarvita operoijaa. Käyttö on erilaista, kuin
'Pikatuessa' tai 'Etätuessa', joissa yleensä tarvitaan henkilö kummassakin päässä yhteyttä.
Etätyöpöydän asu on sama, kuin tavanomaisen työpöydän. Erityisen miellyttävää on, että etätyöpöytä skaalautuu
kaikenlaisiin näyttöihin moitteettomasti.
RDP-yhteyttä varten täytyy palomuurista avata portti (oletus 3389). Avoin RDP-portti Internetiin
on kuitenkin tietoturvaongelma, johon tässä esitetään yksi ratkaisu.
RDP-yhteyden suojaaminen
Etäyhteyden voi suojata kuljettamalla RDP-liikenne OpenSSH-putkessa. SSH-yhteyden asiakas ja palvelin asetetaan
todentamaan toisensa hankalasti murrettavan avainparin avulla. Perinteistä salasanaa ei kuljeteta verkossa lainkaan.
OpenSSH-asiakas lähettää yksityisellä avaimella salatun viestin ja palvelin purkaa salatun viestin julkisella
avaimella. Jos todentaminen onnistuu, myöhempi laitteiden välinen liikenne kulkee SSH-putkessa, salattuna
yhteyskohtaisella avaimella.
Jos todentaminen epäonnistuu, yhteyttä ei synny. Epäonnistuneiden yhteysyritysten lukumäärää voidaan
rajata ja määrän perusteella lukita palvelimella oleva tunnus.
Toimenpiteet palvelimella
Käytetään PowerShell-tulkkia Järjestelmänvalvojan oikeuksin. Toimet voi
myös tehdä osin CMD-komentotulkissa ja osin käyttöjärjestelmän ikkunoissa.
OpenSSH Server:
- Asennetaan
- Käynnistetään
- Asetetaan palvelu käynnistymään automaattisesti
- Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
- Start-Service sshd
- Set-Service -Name sshd -StartupType 'Automatic'
Valmistellaan avaimet käyttöä varten
Luodaan SSH-avainpari:
Poistetaan 'OpenSSH Server' -palvelun salasanatodentaminen käytöstä editoimalla
'C:\programdata\ssh\sshd_config' -tiedostoa.
- Etsitään lause:
#PasswordAuthentication yes
- ja korvataan se lauseella:
PasswordAuthentication no
Asetetaan julkinen avain hyväksymään tulevat yhteydet.
- Kopioidaan julkinen avain
C:\Users\OMATUNNUS\.ssh\id_ed25519.pub
- vaihtaen samalla tiedostonimeksi
C:\programdata\ssh\administrators_authorized_keys
Kopioidaan avainpari
- C:\Users\OMATUNNUS\.ssh\id_ed25519
- C:\Users\OMATUNNUS\.ssh\id_ed25519.pub
ulkoiselle muistivälineelle, minkä jälkeen avainpari poistetaan koneelta.
Avaimia käsitellään kuten salasanaa eli pidetään ulkoinen muistiväline tallessa ja turvassa.
Täsmennetään administrators_authorized_keys -tiedoston käyttöoikeudet:
- poistetaan periytyvät ominaisuudet
- annetaan SYSTEM -tunnukselle täydet oikeudet
- annetaan Järjestelmänvalvojat -ryhmälle täydet oikeudet
- icacls administrators_authorized_keys /inheritance:r
- icacls administrators_authorized_keys
/grant SYSTEM:F
- icacls administrators_authorized_keys
/grant BUILTIN\Järjestelmänvalvojat:F
Asiakaskoneen valmistelu
Luodaan 'C:\Users\OMATUNNUS\.ssh' -hakemisto ja kopioidaan sinne avainparitiedostot 'id_ed25519'
ja 'id_ed25519.pub' muistivälineeltä. Siirrytään luotuun hakemistoon.
- Käynnistetään OpenSSH Authentication Agent -palvelu
- Asetetaan OpenSSH Authentication Agent käynnistymään vastedes automaattisesti
- Annetaan yksityinen avain SSH-agentin hallittavaksi
- Todetaan onnistuminen ja listataan agentin hallussa olevat avaimet
- Start-Service ssh-agent
- Set-Service -Name ssh-agent -StartupType 'Automatic'
- ssh-add id_ed25519
- ssh-add -l
Poistetaan vielä avainpari 'C:\Users\OMATUNNUS\.ssh' -hakemistosta. Yksityinen avain on nyt
siirretty salattuna agentin haltuun, eikä avainta voi ilman agenttia käsitellä.
Tarpeettoman ssh-avaimen poistaminen asiakaskoneesta
Tarpeettomia avaimia saattaa kertyä useita. Sekaannusten välttämiseksi tarpeettomat avaimet on hyvä poistaa
agentin hallusta. Valtuutus poistamiseen saadaan ainoastaan alkuperäisen yksityisen avaintiedoston avulla.
Kopioidaan poistettava avaintiedostopari 'id_ed25519' ja 'id_ed25519.pub' muistivälineeltä
'C:\Users\OMATUNNUS\.ssh' -hakemistoon ja siirrytään sinne.
- Käynnistetään OpenSSH Authentication Agent -palvelu
- Listataan agentin hallussa olevat avaimet
- Poistetaan avain SSH-agentin hallusta
- Varmistetaan, että avain on poistunut listaamalla avaimet uudelleen
- Start-Service ssh-agent
- ssh-add -l
- ssh-add -d id-ed25519
- ssh-add -l
Poistetaan vielä avaintiedostopari 'C:\Users\OMATUNNUS\.ssh' -hakemistosta.
Käynnistetään OpenSSH-tunneli lähiverkossa
Testataan yhteys siten, että asiakas ja palvelin ovat samassa lähiverkossa:
- ssh -i id_ed25519 -p 22 -L 3333:192.168.1.100:3389 OMATUNNUS@192.168.1.100
missä:
- -i (identify_file):
Asiakaskoneen säilö, josta yksityinen avain otetaan tunnistautumista varten.
- -p (port):
Asiakaskone lähettää SSH-dataa palvelimen porttiin 22.
- -L (local port forwarding):
Ohjataan asiakaskoneen RDP-liikenne paikallisesta portista 3333 OpenSSH-putkessa palvelinkoneen
192.168.1.100 porttiin 3389.
- ssh OMATUNNUS@192.168.1.100:
Asiakaskoneen OpenSSH-yhteys palvelinkoneeseen
192.168.1.100 tunnuksella OMATUNNUS
Komentoa on nopea käyttää, kun siitä tehdään komentojono (CMD-tiedosto) ja luodaan ikoni, joka
viittaa tiedostoon.
Käynnistetään Remote Desktop
Etätyöpöytäyhteyden 'kohdekone' on oman koneen (Localhost, 127.0.0.1) portti 3333, josta liikenne ohjautuu
OpenSSH -tunneliin. Etätyöpöytä käynnistyy kätevästi, kun komennosta tehdään CMD-tiedosto ja ikoni.
- start mstc /v:localhost:3333
Etätyöpöydän ominaisuuksia muutetaan sovelluksesta. Sovellus muistaa viimeksi käytetyt asetukset.
Hyödyllisiä ovat mm:
- etätyöpöydän resoluutio ja värimäärä
- etäistuntoon liitettävät paikalliset laitteet (levyasemat, portit, älykortit,...)
- paikalliset tulostimet ja leikepöytä.

Etätyöpöydän asetukset säädetään välilehdiltä.
SSH-tunneli ulkoverkossa
Kun SSH-putki toimii sisäverkossa ja tiedostetaan uhat, saadaan SSH-putki toimimaan pienin muutoksin myös
ulkoverkossa (WAN, Internet).
Seuraavat palvelinliittymän yksityiskohdat täytyy ottaa huomioon:
- Palvelimen liittymällä täytyy olla julkinen IP-osoite:
4G-verkossa on oletuksena APN, jonka jakamat paikalliset IP-osoitteet eivät näy
julkiseen verkkoon. Reitittimen asetuksista vaihdetaan operaattorin APN, joka antaa liittymään
julkisen IP-osoitteen.
- 4g-verkossa julkinen IP-osoite vaihtuu aika-ajoin,
joten liittymälle täytyy asettaa nimi, joka säilyy ja jota voi kutsua:
Tässä käytetään DDNS-palvelua. Yksi liittymään kytketty laite ottaa säännöllisesti
yhteyden DDNS-palveluun, jolloin sovittu DNS-nimi ja senhetkinen IP-numero liitetään
toisiinsa. Liittymää kutsutaan sen pysyvällä DNS-nimellä.
- Liittymän ja palvelimen palomuureista täytyy avata portti SSH-liikennettä varten:
Käytetään palomuurin porttiohjausta, jossa reitittimen avattuun porttiin 12345
tuleva liikenne ohjataan lähiverkon palvelimen SSH-porttiin 22. Myös palvelinkoneen
palomuurissa täytyy TCP-portti 22 olla auki.
OpenSSH-tunneli ulkoverkon kautta palvelimelle
Asiakas ja palvelin ovat eri verkoissa:
- ssh -i id_ed25519 -p 12345 -L 3333:192.168.1.100:3389
OMATUNNUS@esimerkkitoimialue.duckdns.org
missä:
- -i (identify_file):
Yksityinen avain tunnistautumista varten.
- -p (port):
Asiakaskone lähettää SSH-dataa palvelinliittymän reitittimen porttiin 12345. Liikenne ohjataan reitittimessä
porttiin 22 ja lähetetään edelleen palvelimelle.
- -L (local port forwarding):
Ohjataan asiakaskoneen RDP-liikenne paikallisesta portista 3333 OpenSSH-putkessa palvelinkoneen
192.168.1.100 porttiin 3389.
- ssh OMATUNNUS@esimerkkitoimialue.duckdns.org:
OpenSSH-yhteys esimerkkitoimialue.duckdns.org -nimiseen palvelimeen tunnuksella OMATUNNUS
Järjestelmän yksityiskohtia voi muunnella monipuolisesti käyttäjän tarpeiden ja laitteiden tarjoamien
mahdollisuuksien mukaan.
Todettua
- Uhat ja suojaukset kehittyvät. Lopullista varmaa tapaa suojata data ei ehkä ole, mutta ajankohtaan sidottuna
varsin hyviä ratkaisuja on.
- Avoimet järjestelmät ovat verifioitavissa ja toisaalta suljettuihin järjestelmiin on ehkä voitu käyttää
runsaasti resursseja. Yhdistelmä avointa ja suljettua tekniikkaa vaikuttaa lupaavalta.
- Tietosuojavälineiden, -menetelmien ja -suunnitelmien on välttämätöntä uudistua jatkuvasti.
- Käyttäjän ja soveltajan rooli on pitää välineet ajantasaisina, seurata lokeja ja ohjelmistojen vastetta
ja selvittää poikkeavan toiminnan syyt.