:main

etusivu
rautalankasivut
blogi
reseptit
sisäpiirille

#naisnörtit -irckanava
velhottaret.net -palvelin
valikoituja linkkejä

:sivun tyyli
khaki
vihreä
sininen
hopea
:käyttöjärjestelmät

linux
windows
macintosh

:muut
Laitteistot
Ohjelmistot
Tietoverkot
Tietoturva

ssh/scp

Yhteyden otto ssh:lla toiselle koneelle
ssh tunnus@toinenkone
- Jos tunnus on sama lähtökoneella kuin toisella koneella, voi tunnus@-kohdan jättää pois.

Tiedoston siirtäminen omalta koneelta toiselle
scp hakemisto/tiedosto.txt tunnus@toinenkone:toinenhakemisto/

Hakemistopolun siirtäminen omalta koneelta toiselle
scp -r hakemisto tunnus@toinenkone:toinenhakemisto/
-r käy alihakemistotkin läpi (recursive)
Siirtää toiselle koneelle toinenhakemisto/hakemisto ja kaiken sisällön hakemistosta.

Tiedoston siirtäminen pakkauksella
scp -C hakemisto/tiedosto.txt tunnus@toinenkone:toinenhakemisto/
-C pakkaa (compress) Kannattaa kokeilla kumpi on nopeampaa, ilman vai pakkauksella.

Tiedoston siirtäminen toiselta koneelta omalle koneelle
ssh -p tunnus@toinenkone:toinenhakemisto/tiedosto.txt hakemisto/
-p säilytä tiedoston / tiedostojen oikeudet (permissions)

Hakemistopuun tallennus toiselle koneelle
ssh kone -c blowfish "tar -cvpf - hakemisto" | gzip -c > /tulohakemisto/tiedosto.tar.gz
ssh:lle
-c salausalgoritmi (cypher)
tarille
-c luo tiedoston (create)
-v listaa tiedostot (verify)
-p (preserve)
-f käskee käyttämään seuraavaa tiedostoa (file)
gzipille
-c luo tiedoston (create)
tai
cd hakemisto;tar -cvpf - . | ssh kone "cd hakemisto;tar -xvpf -"
Tässä samat valinnat tarille kuin edellisessä esimerkissä. Tässä emme tee tiedostoa, joka siirretään, vaan saamme suoraan koko haluttu hakemistopuu siirrettyä käyttämällä - -merkkiä (stdin ja stdout, riippuen luetaanko tulosta vai kirjoitetaanko sitä). piste (.) merkitsee sitä hakemistoa jossa juuri sillä hetkellä ollaan.

Isojen tiedostojen kohdalla kannattaa käyttää blowfishiä, eikä ehkä aina kannata pakata tiedostoja (gzip).

Esimerkissä on kolme c-valintaa, yksi ssh:lle ja kaksi tiedostonluomiseksi. Ensimmäinen luodaan tarin avulla stdoutiin ja toinen gzipillä luodaan tiedosto haluttuun paikkaan. gzip lukee suoraan putkesta tulevan stdinin, eli tarin luomaa tiedostoa.

Portin edelleenohjaus
ssh -L 1234:localhost:80 tunnus@kone
-L edelleenohjaa paikallinen portti toiselle koneelle (local)

Tässä ohjataan paikalliselle koneelle tulevat pyynnöt porttiin 1234 menemään toisen palvelimen porttiin 80.

Portin edelleenohjaus
ssh -R 1234:localhost:80 tunnus@kone
-R edelleenohjaa toiselta koneelta portti paikalliselle koneelle (remote)

Tässä ohjataan toiselle koneelle tulevat pyynnöt porttiin 1234 menemään toisen palvelimen porttiin 80.

ssh_config helpottamaan elämää
Jotta voisit käyttää eri käyttäjätunnuksia helposti eri koneilla, voit kirjoittaa henkilökohtaiseen ssh:n config-tiedostoon muutaman rivin. Tämä tiedosto on siis kotihakemistossa sijaitsevassa .ssh-hakemistossa ($HOME/.ssh/config).
Host koneennimi
HostName koneennimi.domain.jokin
User tunnus

Näillä kolmella rivillä onnistuu yhteydenotto komennolla ssh koneennimi sen sijaan että joutuisi mahdollisesti komentamaan ssh tunnus@koneennimi.domain.jokin.

Luo ssh-avain OpenSSH:lla
Generoi uusi avain komentamalla
ssh-keygen -t dsa
ja vastaa kysymyksiin. Tämä luo oletuksena (pelkkiä enterin-painalluksia) salasanattoman avaimen, jossa julkinen osuus on tiedostossa $HOME/.ssh/id_dsa.pub ja identiteettisi on tiedostossa $HOME/.ssh/id_dsa. Pidä tuo identiteettitiedosto hyvässä tallessa (ei kenenkään muun ulottuvilla) ja käytä julkista tiedostoa (id_dsa.pub) kun haluat kyseisellä avaimella logata sisään palvelimelle (kopioi se palelimen .ssh/authorized_keys-tiedostoon). Jos ssh-avaimet ovat täysin uusi tuttavuus, kannattaa aiheesta lukea lisää ennen käyttöä.

Muunnos OpenSSH-avaimesta SSH2-avaimeen
Kirjaudu sisään koneelle, jossa openssh on asennettuna ja muunna olemassa oleva avain seuraavasti:
ssh-keygen -e -f ~/.ssh/id_dsa.pub > ~/.ssh/id_dsa_ssh2.pub
Jos taas haluat muuttaa SSH2-avaimen OpenSSH-muotoon tee se importilla:
ssh-keygen -i -f ~/.ssh/id_dsa_ssh2.pub > ~/.ssh/id_dsa_openssh.pub