Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: Hanva - 24.11.15 - klo:11.45
-
Mulla on ylimääräinen kone jossa on Ubuntu 14 jakelu ja haluaisin hyötykäyttää konetta tiedostopalvelimena läppärille jota kuljetan mukanani reissussa.
Millainen systeemi olisi järkevä tällaiseen tarkoitukseen?
-
Asentaisin tapauksessasi ssh-palvelimen.
-
ownCloud (https://owncloud.org/) on toinen yleinen ratkaisu, jos tiedostoihin on tarvetta joskus päästä muualtakin kuin omalta läppäriltä.
-
Jos kokeilen laittaa pystyyn openssh palvelimen näillä ohjeilla http://wiki.ubuntu-fi.org/ssh-palvelin (http://wiki.ubuntu-fi.org/ssh-palvelin). Onnistuuko yhteydenotto tähän palvelimeen etäkoneen komentotulkilla vai vaaditaanko erillinen clientti? Ja miten käytännössä yhteydenotto tapahtuu?
Tuossa yllä olevassa ohjeessa ei ollut portin asetuksesta mitään ohjeita jos haluaa käyttää jotain muuta porttia kuin 22
-
Sisäverkossa onnistuu komentorivillä yksinkertaisesti IP-osoitteella kun sama käyttäjä molemmissa, esim. ssh 192.168.x.x
Tällä tavoin pääsee kohdekoneen komentoriville. Salasanaa ei tarvitse antaa jos käyttää salausta. Erittäin kätevä.
Internetistä onnistuu muuten samoin mutta IP-osoitteeksi antaa internetiin liitetyn reitittimen osoitteen. Tämä voi olla tavallisessakin liittymässä
vuosien ajan muuttumaton jos mihinkään ei koske eikä sähköt katkea. Parempi on varmistaa asia käyttämällä DNS palvelinta kuten ym. ohjeen sivun linkissä kerrotaan.
Reititin pitää konfata välittämään paketit haluttuun IP-osoitteeseen ja porttiin jos reititin on kuten tavallista NAT moodissa. Tämä konfaus voi olla reitittimessä nimeltään Port Forwarding tai Virtual Server tms.
Asiakaskoneessa vaihtaa porttinumeron /etc/ssh/ssh_config.
Palvelinkoneessa /etc/ssh/sshd_config. Samaan tiedostoon konfaa myös PubkeyAuthentication ym.
Tässä lyhyesti, unohtuikohan tästä jotain?
-
Jos kokeilen laittaa pystyyn openssh palvelimen näillä ohjeilla http://wiki.ubuntu-fi.org/ssh-palvelin (http://wiki.ubuntu-fi.org/ssh-palvelin). Onnistuuko yhteydenotto tähän palvelimeen etäkoneen komentotulkilla vai vaaditaanko erillinen clientti? Ja miten käytännössä yhteydenotto tapahtuu?
Ubuntussa on ssh-asiakasohjelma valmiiksi asennettuna. Pääteyhteys avataan komennolla:
ssh tunnus@osoite
Tiedostoja voi siirtää esimerkiksi scp:llä:
scp tunnus@osoite:kansio/tiedosto .
Lisää esimerkkejä: https://www.linux.fi/wiki/SCP
Monet tiedostoselaimet (myös Nautilus) tukevat scp/sftp-yhteyksiä, jolloin tiedostojen siirto onnistuu normaaliin tapaan graafisesti.
Tuossa yllä olevassa ohjeessa ei ollut portin asetuksesta mitään ohjeita jos haluaa käyttää jotain muuta porttia kuin 22
Kuten pata kertoi, porttiohjauksen voi yleensä tehdä reitittimen palomuurissa, jolloin sisäverkossa toimii normaali ssh-portti ja ulkoa sisään pääsee asettamasi portin kautta.
Tarvittaessa SSH-palvelimen portin voi vaihtaa muokkaamalla asetustiedostoa /etc/ssh/sshd_config
Käynnistä sen jälkeen SSH-palvelin uudelleen:
sudo service ssh restart
-
Asiakaskoneessa vaihtaa porttinumeron /etc/ssh/ssh_config.
Palvelinkoneessa /etc/ssh/sshd_config. Samaan tiedostoon konfaa myös PubkeyAuthentication ym.
Tässä lyhyesti, unohtuikohan tästä jotain?
Asiakaskoneessa voi portin antaa myös komentoriville esim. ssh -p 1234 käyttäjä@ip-osoite
Tiedostoselainta käytettäessä portti tulee viimeiseksi esim. fish://käyttäjä@ip-osoite:1234
-
Jos kokeilen laittaa pystyyn openssh palvelimen näillä ohjeilla http://wiki.ubuntu-fi.org/ssh-palvelin (http://wiki.ubuntu-fi.org/ssh-palvelin). Onnistuuko yhteydenotto tähän palvelimeen etäkoneen komentotulkilla vai vaaditaanko erillinen clientti? Ja miten käytännössä yhteydenotto tapahtuu?
Etäyhteyttä varten voit tosiaan yhdistää päätteestä ssh-komennolla, mutta jos haluat vain päästä tiedostoihin käsiksi, niin voit käyttää tiedostoselaimella sftp-yhteyttä (toimii siis samalla palvelimella kuin ssh). Monesti tiedostoselaimesta löytyy kohta Yhdistä palvelimeen, joka opastaa tuossa, mutta ihan sftp-osoitteet osoiterivilläkin (saa esiin esim. Ctrl+l) toimivat. Se osoite on siis esimerkiksi muotoa: sftp://etakone/home/kayttaja
Tuossa yllä olevassa ohjeessa ei ollut portin asetuksesta mitään ohjeita jos haluaa käyttää jotain muuta porttia kuin 22
Linux.fi:ssä on aika paljon ohjeita, mutta ei näköjään tähän asiaan: https://www.linux.fi/wiki/SSH
Tuo menee lyhykäisyydessään niin että muokkaat tiedostoon /etc/ssh/sshd_config riviä jolla lukee Port ja laitat siihen haluamasi arvon. Sen jälkeen käynnistät palvelimen uudestaan. Toki noita rivejä voi laittaa useamman, jolloin kuunnellaan useampia portteja. Itse olen tavannut kyllä tehdä tuon niin, että palvelin kuuntelee aina porttia 22, mutta reitittimen porttiohjauksiin laitetaan sitten ulkoverkkoon päin eri portti.
Palvelimen asetusten muokkaus:
sudo -i gedit /etc/ssh/sshd_config
Palvelimen uudelleenkäynnistys:
sudo service ssh restart
Muokkaus: Oli se portin vaihto sittenkin siellä:
https://www.linux.fi/wiki/SSH-turvatoimet#Portin_vaihto
-
Kiitoksia paljon neuvoista. Nyt pitää vain testailla....ja kysyä sitten lisää :)
-
Noniin yhteys onnistuu sisäverkosta käsin. Seuraavaksi pitäisi konffata reititimelle porttiohjaus. Jos haluaisin esim. portin 25001 auki ulospäin niin miten toimin. Tässä on kuva reitittimen asetuksista. Toi 192.168.1.2 on palvelinkoneen IP.
Sitten vielä tämmöinen kysymys: Kun otan yhteyttä niin seuraavanlaisia tekstejä ilmestyy ruudulle. Mitä nämä mahtavat tarkoittaa?
The authenticity of host '192.168.1.2 (192.168.1.2)' can't be established.
ECDSA key fingerprint is (tässä pitkä kaksoispisteillä jaettu lukujono)
Are you sure you want to continue connecting (yes/no)?
ja Warning: Permanently added '192.168.1.2' (ECDSA) to the list of known hosts.
(https://farm6.staticflickr.com/5706/22884777537_21b176556b_b.jpg)
-
Noniin yhteys onnistuu sisäverkosta käsin. Seuraavaksi pitäisi konffata reititimelle porttiohjaus. Jos haluaisin esim. portin 25001 auki ulospäin niin miten toimin. Tässä on kuva reitittimen asetuksista. Toi 192.168.1.2 on palvelinkoneen IP.
Osoitteen oletkin jo laittanut oikein. Laita siihen External Port Start ja End kohtiin tuo 25001 eli se portti, jota haluat ulkoverkosta käyttää, Protocol kohtaan TCP ja Internal Port Start ja End kohtiin 22 tai se osoite jonka vaihdoit palvelimen asetuksiin. Sitten vain Apply/Save.
Sitten vielä tämmöinen kysymys: Kun otan yhteyttä niin seuraavanlaisia tekstejä ilmestyy ruudulle. Mitä nämä mahtavat tarkoittaa?
The authenticity of host '192.168.1.2 (192.168.1.2)' can't be established.
ECDSA key fingerprint is (tässä pitkä kaksoispisteillä jaettu lukujono)
Are you sure you want to continue connecting (yes/no)?
ja Warning: Permanently added '192.168.1.2' (ECDSA) to the list of known hosts.
Tuo tarkoittaa sitä ettei palvelimen avainta tunneta ja siihen ei voida luottaa, joten käyttäjää pyydetään hyväksymään tuo avain. Sen jälkeen kerrotaan, että kyseinen avain lisättiin tuolle osotteelle tunnettujen avainten listaan ja jatkossa tuota varoitusta ei myöskään näytetä. Ensimmäisellä kerralla yhdistettäessä tuo on ihan normaali ilmoitus, mutta jos se tulee aivan yllättäen, voi olla että joku on tehnyt MITM-hyökkäyksen (https://fi.wikipedia.org/wiki/Mies_v%C3%A4liss%C3%A4_-hy%C3%B6kk%C3%A4ys). Se tosin on aika epätodennäköistä ja tuolle voi löytyä joku realistisempikin syy, mutta se on yksi mahdollisuus.
-
Yhteys toimii "over the net"
Oikein paljon kiitoksia!
Nyt pitää vielä toi salaus laittaa ettei tarvi salasanoja.
-
Ja niin ilmeni ongelma....
Saan yhteyden hyvin ja dir komennolla näen /home kansiot, mutta siihempä se sitten jääkin kun avaan esim Lataukset kansion niin se näyttää tyhjää komennolla dir vaikka kansiossa on tavaraa. Koitin vielä ottaa yhteyden tiedostoselaimella, mutta sama homma kansiot ovat tyhjiä.
-
Voisitko näyttää tarkemmin mitä teit? Ettet vahingossa yrittänyt listata paikallisen koneen tiedostoja tai ehkä yhdistit eri käyttäjällä kuin se jota käytit etäkoneella (palvelinkone) listaukseen. Nämä tulevat ensimmäisenä mieleen. Kannattaa ehkä tarkistaa, että olit siinä hakemistossa, jossa ajattelit olevasi. Se käy helpoimmin komennolla pwd (https://www.linux.fi/wiki/Pwd), joka tulostaa työhakemiston täydellisen polun.
-
No näimpä siinä kävi....liian monta näppistä käsissä yhtä aikaa :D
Homma toimii niinkuin pitääkin.
Sitten on vielä toi salausavaimen kopioiminen ja lisäminen palvelimelle. Yritin ohjeiden mukaan, mutta ei onnistu.
scp ~/.ssh/id_rsa.pub tunnus@palvelin:
tämän ohjeen mukaan kirjoitin komentoriville scp -p 25010 ~/.ssh/id_rsa.pub 85.23.28.141
ja vastauksena oli 85.23.28.141: No such file or directory
Mitähän en nyt käsittänyt?
-
Sitten on vielä toi salausavaimen kopioiminen ja lisäminen palvelimelle. Yritin ohjeiden mukaan, mutta ei onnistu.
scp ~/.ssh/id_rsa.pub tunnus@palvelin:
tämän ohjeen mukaan kirjoitin komentoriville scp -p 25010 ~/.ssh/id_rsa.pub 85.23.28.141
Osoitteen perästä puuttuu kaksoispiste, joka määrittää scp:n komentorivillä, että kyseessä on etäkoneella oleva sijainti. (Joka on siis muotoa "osoite:polku", mutta polku voi olla tyhjä, jolloin tiedosto kopioidaan etäkoneen käyttäjän kotihakemistoon).
-
Lisäsin kaksoispisteen loppuun, mutta nyt kestää jonkin aikaa ja tulee seuraava ilmoitus
ssh: connect to host 85.23.28.141 port 22: Connection timed out
lost connection
Ihan niinkuin se yrittäisi hakata päätään portti 22:een vaikka yritin tuolla -p käskyllä ohjata porttiin 25010 mikä on konffattu reitittimeen.
-
Ihan niinkuin se yrittäisi hakata päätään portti 22:een vaikka yritin tuolla -p käskyllä ohjata porttiin 25010 mikä on konffattu reitittimeen.
Konfasitko sinne portin 25010 vai 25001, josta aiemmin puhuit?
-
Joo päädyin porttiin 25010 ja pääsen kyllä kirjautumaan palvelimelle ssh -p 25010 komennolla...
-
Joo päädyin porttiin 25010 ja pääsen kyllä kirjautumaan palvelimelle ssh -p 25010 komennolla...
scp porttivipu on iso -P kun taas ssh:ssa se on pieni -p (älkää kysykö miksi) :O
man scp ja man ssh
-
Pienestä se on näköjään kiinni tän Linus-pojan kanssa :o
-
scp porttivipu on iso -P kun taas ssh:ssa se on pieni -p (älkää kysykö miksi) :O
Varmaan siksi, että scp pyrkii muistuttamaan cp:tä, jossa -p:llä on vakiintunut merkitys. ssh:ssa taas -p on varmaankin alusta lähtien asettanut portin, eikä tätä ole haluttu lähteä muuttamaan.
-
Pienestä se on näköjään kiinni tän Linus-pojan kanssa :o
Linuksella (https://fi.wikipedia.org/wiki/Linus_Torvalds) ei taida olla mitään roolia ssh:n tai scp:n kehityksessä. :)
Vakavasti puhuen: kieltämättä tuo ero noiden välillä tuntuu rikkovan yhtenäisyyden periaatetta, mutta ymmärrän hyvin, jos scp on pyrkinyt yhtenäisyyteen cp-komennon kanssa.
-
Mutta kaikesta huolimatta oli valaiseva oppitunti ja nyt pääsen palvelimelle netin yli niinkuin halusinkin.
Seuraavaa oppituntia kehitellessä... :)
-
Jaahas vielä riittää kyseltävää:
Konffasin palvelimelta salasanakyselyn pois että kirjautuminen onnistuu vain salausavaimella, mutta kun kokeilin ottaa palvelimeen yhteyttä windowsin puolelta puttylla niin kas kummaa pääsin kirjautumaan käyttäjätunnuksella ja salasanalla??
Osaakos joku tähän kommentoida mistä moinen johtuu?
-
Konffasin palvelimelta salasanakyselyn pois että kirjautuminen onnistuu vain salausavaimella, mutta kun kokeilin ottaa palvelimeen yhteyttä windowsin puolelta puttylla niin kas kummaa pääsin kirjautumaan käyttäjätunnuksella ja salasanalla??
Eli onko /etc/ssh/sshd_config -tiedostossa nyt rivi
PasswordAuthentication no
Varmuuden vuoksi (http://blog.tankywoo.com/linux/2013/09/14/ssh-passwordauthentication-vs-challengeresponseauthentication.html) myös ChallengeResponseAuthentication pitää kytkeä pois:
ChallengeResponseAuthentication no
Oletko käynnistänyt SSH-palvelimen uudelleen?
sudo service ssh restart
-
Kyllä kaikki nuo on tehty ja edelleen pääsen puttylla kirjautumaan käyttäjätunnuksella ja salasanalla.
-
Kyllä kaikki nuo on tehty ja edelleen pääsen puttylla kirjautumaan käyttäjätunnuksella ja salasanalla.
Pääsetkö sisään asti? Kirjautumiskehotteen pitääkin näkyä, mutta minkään salasanan ei pitäisi kelvata.
Tarkistetaan vielä asetustiedosto. Mitä nämä komennot listaavat palvelimella:
grep -i passwordauth /etc/ssh/sshd_config
grep -i challenge /etc/ssh/sshd_config
Kopioi listaukset päätteestä tänne.
-
Kyllä pääsen sisään.
#PasswordAuthentication no
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication, then enable this but set PasswordAuthentication
# Change to yes to enable challenge-response passwords (beware issues with
ChallengeResponseAuthentication no
# be allowed through the ChallengeResponseAuthentication and
# PAM authentication via ChallengeResponseAuthentication may bypass
# and ChallengeResponseAuthentication to 'no'.
edit: tällainen rivi löytyy sshd_config tiedostosta. Voisiko tämä liittyä asiaan?
#KerberosOrLocalPasswd yes
-
Kyllä pääsen sisään.
#PasswordAuthentication no
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication, then enable this but set PasswordAuthentication
Ota kommenttimerkki # pois tuosta PasswordAuthentication no rivin edestä.
Käynnistä sitten ssh-serveri uudelleen.
Eli noissa asetuksissa jos on jonkin asian edessä # -merkki ko. asiaa ei huomioida mitenkään.
-
Toimii...