Kirjoittaja Aihe: MUltihost SSH Wrapper - Asennus ja käyttö [siirrettävissä]  (Luettu 9505 kertaa)

Asmo Koskinen

  • Käyttäjä
  • Viestejä: 4443
    • Profiili
Seuraavassa käydään läpi Mussh-skriptin asennus ja käyttö. Mussh-skriptin avulla voi hallinnoida useita työasemia ssh-ohjelmaa käyttäen.

Mussh-skriptiä käytettäessä ei tarvita salasanoja, vain RSA-avainpareja.

"MUltihost SSH Wrapper - Broadcasts commands over SSH to multiple hosts.

Mussh is a shell script that allows you to execute a command or script over SSH on multiple hosts with one command. When possible, it will use ssh-agent and RSA/DSA keys to minimize the need to enter your password more than once."

http://directory.fsf.org/mussh.html

Tässä ohjeessa on käytetty apuna tätä ohjetta:

http://www.debian-administration.org/articles/152

1. Avaa Gnome-terminaali ja asenna openssh-client ja keychain.

koskias@ubuntu:~$ sudo apt-get install openssh-client keychain

Luetaan pakettiluetteloita... Valmis
Muodostetaan riippuvuussuhteiden puu... Valmis
openssh-client on jo uusin versio.
Seuraavat UUDET paketit asennetaan:
  keychain
0 päivitetty, 1 uutta asennusta, 0 poistettavaa ja 0 päivittämätöntä.
Noudettavaa arkistoa 31,4kt.
Purkamisen jälkeen käytetään 139kt lisää levytilaa.
Nouda:1 http://archive.ubuntu.com dapper/universe keychain 2.6.1-0ubuntu1 [31,4kB]
Noudettiin 31,4kt ajassa 0s (48,2kt/s)
Selecting previously deselected package keychain.
(Reading database ... 120782 files and directories currently installed.)
Unpacking keychain (from .../keychain_2.6.1-0ubuntu1_all.deb) ...
Setting up keychain (2.6.1-0ubuntu1) ...

koskias@ubuntu:~$

2. Luo RSA-avainpari. Älä anna salasanaa, vaan paina vain ENTER, kun kysytään salasanaa.

koskias@ubuntu:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/koskias/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Your identification has been saved in /home/koskias/.ssh/id_rsa.
Your public key has been saved in /home/koskias/.ssh/id_rsa.pub.
The key fingerprint is:
4b:a5:d2:eb:7b:f6:88:3d:48:bb:c6:c8:75:25:8f:9a koskias@ubuntu
koskias@ubuntu:~$

3. Kopioi RSA-avainparin julkinen avain työasemaan. Sinulla täytyy olla luotuna tunnus työasemassa. Voit käyttää myös "root"-tunnusta, koska käytät SSH-putkea ja RSA-avainparia.

Toista tämä kohta kaikkien niiden työasemien kohdalla, joita haluat hallinnoida.

koskias@ubuntu:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub arkki@arkki.info
29
arkki@arkki.info's password:
Now try logging into the machine, with "ssh 'arkki@arkki.info'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

koskias@ubuntu:~$

4. Testaa RSA-avainparit.

Tunnus "arkki" isäntäkoneessa "arkki.info" ei tarvitse salasanaa, koska tunnistautuminen tapahtuu RSA-avainten perusteella. Etäkoneen piilohakemistossa on oikea avain.

koskias@ubuntu:~$ ssh arkki@arkki.info
Last login: Fri Aug 18 20:32:03 2006 from 194.xxx.xxx.xxx
[--]

[arkki@twilight arkki]$

[arkki@twilight arkki]$ cd .ssh
[arkki@twilight .ssh]$ ls
authorized_keys
[arkki@twilight .ssh]$ cat authorized_keys
ssh-rsa AAAAB3Nz[loput poistettu] koskias@ubuntu
[arkki@twilight .ssh]$

5. Lataa Mussh.

koskias@ubuntu:~$ cd bin
koskias@ubuntu:~/bin$ wget http://puzzle.dl.sourceforge.net/sourceforge/mussh/mussh-0.6.tgz

--21:08:51--  http://puzzle.dl.sourceforge.net/sourceforge/mussh/mussh-0.6.tgz
           => `mussh-0.6.tgz.1'
Selvitetään osoitetta puzzle.dl.sourceforge.net... 195.182.13.20
Yhdistetään palvelimeen puzzle.dl.sourceforge.net|195.182.13.20|:80... yhdistetty.
HTTP-pyyntö lähetetty, odotetaan vastausta... 200 OK
Pituus: 9 123 (8.9K) [application/x-gzip]

100%[==>]
 9 123        --.--K/s

21:08:51 (76.60 KB/s) - "mussh-0.6.tgz" tallennettu [9123/9123]

koskias@ubuntu:~/bin$

6. Pura Mussh ja siirrä se /usr/local/bin-hakemistoon.

koskias@ubuntu:~/bin$ tar zxvf mussh-0.6.tgz
mussh/
mussh/INSTALL
mussh/README
mussh/EXAMPLES
mussh/BUGS
mussh/mussh.spec
mussh/mussh
mussh/CHANGES
koskias@ubuntu:~/bin$

koskias@ubuntu:~/bin/mussh$ sudo cp mussh /usr/local/bin
koskias@ubuntu:~/bin/mussh$

koskias@ubuntu:~/bin/mussh$ cd /usr/local/bin
koskias@ubuntu:/usr/local/bin$ ls -l
yhteensä 20
-rwxr-xr-x 1 root root 18114 2006-08-18 20:39 mussh
koskias@ubuntu:/usr/local/bin$

7. Kirjaudu kerran pois Gnome-terminaalista. Kun kirjaudut takaisin, niin kysy missä Mussh on.

koskias@ubuntu:~$ which mussh
/usr/local/bin/mussh
koskias@ubuntu:~$

8. Mussh-skriptin käyttäminen.

Kysytään isäntäkoneelta "arkki.info", mikä hänen nimensä on. Käskyn antamiseen ei siis tarvita lainkaan salasanaa.

koskias@ubuntu:~$ mussh -h arkki@arkki.info -c 'uname -a'
arkki@arkki.info: Linux twilight.nebula.fi 2.6.17.4 #6 SMP PREEMPT Tue Jul 18 09:48:04 EEST 2006 i686 unknown
koskias@ubuntu:~$

Jos isäntäkoneita olisi enemmän, vaikkapa kolme kaikkiaan, niin komentoriville kirjoitettaisiin näin:

koskias@ubuntu:~$ mussh -h arkki@arkki.info arkki1@arkki1.info arkki2@arkki2.info -c 'uname -a'

Lisää Mussh-käytöstä saa tietää EXAMPLES-tiedostosta sekä README-tiedostosta.

Ystävällisin terveisin Asmo Koskinen.
« Viimeksi muokattu: 17.08.08 - klo:18.38 kirjoittanut Kari Argillander »

Ville Pöntinen

  • Käyttäjä
  • Viestejä: 2078
    • Profiili
Re: MUltihost SSH Wrapper - Asennus ja käyttö
« Vastaus #1 : 28.09.06 - klo:11.57 »

Hei!

Ja kiitos ohjeista taas kerran...

Tähän asti homma toimi.

4. Testaa RSA-avainparit.

Tunnus "arkki" isäntäkoneessa "arkki.info" ei tarvitse salasanaa, koska tunnistautuminen tapahtuu RSA-avainten perusteella. Etäkoneen piilohakemistossa on oikea avain.

koskias@ubuntu:~$ ssh arkki@arkki.info
Last login: Fri Aug 18 20:32:03 2006 from 194.xxx.xxx.xxx
[--]

[arkki@twilight arkki]$

[arkki@twilight arkki]$ cd .ssh
[arkki@twilight .ssh]$ ls
authorized_keys
[arkki@twilight .ssh]$ cat authorized_keys
ssh-rsa AAAAB3Nz[loput poistettu] koskias@ubuntu
[arkki@twilight .ssh]$

Mutta minulta se kyllä kysyy salasanaa. Lisäksi itse Mussh:n käyttänminen mättää.

Mulla on sellainen tilanne, että kaikilla koneilla on vain yksi käyttäjätili (se asennuksen yhteydessä luotu sudoer). Luulen ongelman juontuvan siitä, että molemmat koneet (se, jolta tätä yritän ja se, jota yritän hallinnoida) mounttaavat saman /homen. Apuja?

Tulosteita:

Avainten luonti:

paavo@ville:/home/ville$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/paavo/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/paavo/.ssh/id_rsa.
Your public key has been saved in /home/paavo/.ssh/id_rsa.pub.
The key fingerprint is:
44:17:f8:7b:75:30:bc:d8:50:11:84:d0:94:86:69:3a paavo@ville
paavo@ville:/home/ville$

Kopiointi:

paavo@ville:/home/ville$ ssh-copy-id -i /ssh/id_rsa.pub 10.4.4.107
15
paavo@10.4.4.107's password:
Now try logging into the machine, with "ssh '10.4.4.107'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

paavo@ville:/home/ville$

Testaus, jossa siis ssh kysyy salasanaa, ja päästää sen avulla sisälle, muuten ei:

paavo@ville:/home/ville$ ssh 10.4.4.107
paavo@10.4.4.107's password:
Linux client-dtk-win-lk16-17 2.6.15-27-686 #1 SMP PREEMPT Sat Sep 16 02:13:27 UTC 2006 i686 GNU/Linux

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
Last login: Thu Sep 28 11:50:19 2006 from 10.4.4.20
paavo@client-dtk-win-lk16-17:~$

Mussh ei toimi:

paavo@ville:/home/ville$ mussh -h 10.4.4.107 -c 'uname -a'
10.4.4.107: Permission denied (publickey,password).
paavo@ville:/home/ville$

Apua? Linkkivikkiä?

Asmo Koskinen

  • Käyttäjä
  • Viestejä: 4443
    • Profiili
Re: MUltihost SSH Wrapper - Asennus ja käyttö
« Vastaus #2 : 28.09.06 - klo:20.16 »
Apua? Linkkivikkiä?

En oikein saa kuvaa lähiverkkosi topologiasta, mutta oletetaan seuraavaa.

1.

"paavo" = 10.4.4.106
"ville" = 10.4.4.107

käyttäjä "paavo" koneella "paavo", paavo@paavo

käyttäjä "ville" koneella "ville", ville@ville

2.

Laita koneiden nimet ja ip-numerot oikein /etc/hosts-tiedostoon molempiin koneisiin, niin voit viitata koneisiin nimen, ei vain ip-numeron perusteella.

asmok@ubuntu:~$ cat /etc/hosts
127.0.0.1 localhost ubuntu
127.0.1.1 ubuntu

# LAN

10.4.4.106 paavo
10.4.4.107 ville

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
asmok@ubuntu:~$

Tiedoston /etc/hosts lukeminen perustuu tiedostoon /etc/host.conf. Ensin luetaan "hosts" tiedosto, sitten mennään lukemaan nimipalveluja (DNS).

asmok@ubuntu:~$ cat /etc/host.conf
order hosts,bind
multi on
asmok@ubuntu:~$

3. Luo julkinen avain avain koneessa "paavo" tunnukselle "paavo". Älä anna salasanaa.

paavo@paavo:~$ ssh-keygen -t rsa

4. Kopio koneen "paavo" tunnuksen "paavo" julkinen avain koneen "ville" tunnuksen "ville" .ssh-hakemistoon. Tässä kohtaa joudut luonnollisesti yhden kerran vielä antamaan tunnuksen "ville" salasanan.

paavo@paavo:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub ville@ville

5. Ota yhteys tunnuksella "paavo" koneesta "paavo" tunnukselle "ville" koneeseen "ville".

paavo@paavo:~$ ssh ville@ville

6. Kysy koneen "ville" tietoja tunnuksen "ville" avulla.

paavo@paavo:~$ mussh -h ville@ville -c 'uname -a'


Nyrkkisääntö on siis, että joka välissä pitää olla "joku@jossakin".


Kannattaa lukea lisää lähiverkoista; vanha, mutta sitäkin parempi:

"Linux Network Administrators Guide"

http://www.tldp.org/LDP/nag2/index.html

Ystävällisin terveisin Asmo Koskinen.
« Viimeksi muokattu: 28.09.06 - klo:20.19 kirjoittanut Asmo Koskinen »

Ville Pöntinen

  • Käyttäjä
  • Viestejä: 2078
    • Profiili
Re: MUltihost SSH Wrapper - Asennus ja käyttö
« Vastaus #3 : 28.09.06 - klo:23.02 »
Nyrkkisääntö on siis, että joka välissä pitää olla "joku@jossakin".

Hmm... Kokeillaan jotain tuolta pohjalta huomenissa.

Meidän koululla verkko on seuraavanlainen: Kaikkissa (ko.) koneissa Ubuntu 6.06 ja kaikkien koneiden passwd-tiedostossa on vain ksi "paikallinen" käyttäjä, paavo, ja tämä tunnus luotiin koneen asennuksen yhteydessä eli sillä siis sudo-oikeus. Paavon salasana on sama kaikilla asiakaskoneilla. (Ja mun serveri ei liittynyt näihin kokeiluihin mitenkään, yritin halinnoida clienttia 10.4.4.107 omalta koneeltani.) Muut käyttäjät kirjautuvat koneeseen NIS:n kautta.

ville on henkilökohtainen tunnukseni. Tämä tietenkin näyttää kummalta, kun henkilökohtaisen koneeni nimi on myös ville. Ja viimeistään, kun koneella ville (ollessani hakemistossa /home/ville) käskin ekana su paavo, jolla sitten näitä yritin...

Kaikki koneet mounttaavat fstabissa saman /homen. Eli kopioidessani ssh:lla avainta koneelta ville koneelle 10.4.4.107 tapahtui (ilmeisesti) seuraavaa:

1. kone ville latasi (välimuistiin tms. en todellakaan tiedä missä järjestyksessä tiedostot/paketit/putket tässä yhteydessä pelaavat) tiedoston id_rsa palvelimen kansiosta /home/paavo/.ssh
2. ja lähetti sen ssh:n avulla koneelle 10.4.4.107 (käyttäen tunnusta paavo)
3. kone 10.4.4.107 vastaanotti sen (välimuistiin)
4. ja kopioi palvelimelle kansioon /home/paavo/.ssh

 ??? ??? ??? ??? ??? ??? ???

Tämä on varmaan ollut suurin määrä turhaa työtä jonka olen tehnyt korvatakseni tiedoston itsellään... Olis varmaan kannattanut ajatella ensin.

Toisaalta, miksi mussh sitten toimi? Miten (sama) mountattu /home siihen vaikuttaa? Kokeilen huomenna (kahden koneen välillä) ja luon ensin molempiin käyttäjät, joiden kotikansio ei ole servolta mountatussa kansiossa /home. Tällaisen käyttäjän varmaankin tulee olla sudoeri?

Erittäin ystävällisin terveisin Ville Pöntinen

Edit: Sekoilin ja lainasin itseäni, joten poistin sen viestin.

Edit jatkuu: Voin ottaa yhteyden komentamalla "vain" ssh <ip-osoite>, koska olen paavo (koneella ville).

Toisekseen kun huollettavia koneita on n. 80, ajattelin pelata ip-osoitteiden mukaan. Kaipa ne voisi kirjoittaa serverin ja henk.koht. koneeni hosts-tiedostoihin, mutten viitsi, jollei siihen tule jotain hyvää syytä.
« Viimeksi muokattu: 28.09.06 - klo:23.11 kirjoittanut pontvil »

Asmo Koskinen

  • Käyttäjä
  • Viestejä: 4443
    • Profiili
Re: MUltihost SSH Wrapper - Asennus ja käyttö
« Vastaus #4 : 29.09.06 - klo:07.37 »
Toisaalta, miksi mussh sitten toimi? Miten (sama) mountattu /home siihen vaikuttaa? Kokeilen huomenna (kahden koneen välillä) ja luon ensin molempiin käyttäjät, joiden kotikansio ei ole servolta mountatussa kansiossa /home. Tällaisen käyttäjän varmaankin tulee olla sudoeri?

En oikein osaa sanoa, mitä NFS vaikuttaa siinä välissä. Eikö /etc/passwd-tiedosto lähinnä määrää keitä käyttäjiä koneella on (poislukien NIS)? Eikö sama julkinen avoin voisi olla kaikilla "paavo"-käyttäjillä, kun kuitenkin se ip-numero vaihtuu? Eikö se ssh:n mielestä ole silloin aina eri käyttäjä eri koneella?

ssh paavo@paavo paavo@10.0.0.1
ssh paavo@paavo paavo@10.0.0.2
ssh paavo@paavo paavo@10.0.0.3
jne

Sinullahan on koneessa "paavo" "paavon" kotihakemiston .ssh-hakemistossa rivit jokaiselle yhteydelle - ~/.ssh/known_hosts. Näkyykö siellä yhteydenotto eri työasemille?

Ystävällisin terveisin Asmo Koskinen.

Ville Pöntinen

  • Käyttäjä
  • Viestejä: 2078
    • Profiili
Re: MUltihost SSH Wrapper - Asennus ja käyttö
« Vastaus #5 : 03.10.06 - klo:12.39 »

Hei!

Sain homman toimimaan.

Tein kohdekoneelle uuden sudo-käyttäjän, jonka kotikansio ei ole /home:ssa, joka siis mountataan nfs:llä serveriltä.

Kiitos!

ErkkoS

  • Käyttäjä
  • Viestejä: 10
    • Profiili
Vs: Re: MUltihost SSH Wrapper - Asennus ja käyttö
« Vastaus #6 : 01.02.07 - klo:11.46 »

Hei!

Sain homman toimimaan.

Tein kohdekoneelle uuden sudo-käyttäjän, jonka kotikansio ei ole /home:ssa, joka siis mountataan nfs:llä serveriltä.

Kiitos!

Hienoa touhua. Itse olen ratkaissut asian samoin, mutta olen jakanut yhden kansion NFS:llä vain ylläpitoa varten (en siis kenenkään käyttäjän kotikansioksi) ja kirjoittanut sinne skriptin, joka tekee varsinaisen päivityksen etc. etc. Sitten vain ajan tuon skriptin ssh:n yli...

Kiitokset Asmolle arvokkaasta työstä taas kerran.

-- Erkko

Risto H. Kurppa

  • Käyttäjä
  • Viestejä: 3024
  • Useita Kubuntuja ajossa.
    • Profiili
    • http://risto.kurppa.fi
Vs: MUltihost SSH Wrapper - Asennus ja käyttö
« Vastaus #7 : 28.04.08 - klo:08.34 »
Voisiko ohjeen kirjoittaja/täydentäjät kirjoittaa viestin jossa vahvistavat että     

a) ohje on edelleen käyttökelpoinen Hardyssä (tuorein LTS, tuorein stable)
eli uudet ominaisuudet eivät ole poistaneet tarvetta ohjeelle tai että ohjeessa käytetyt työkalut jne ovat edelleen Hardyssä käytössä
b) antavat luvan ohjeen siirtämiseen Ubuntu Suomen wikiin (http://wiki.ubuntu-fi.org). Kts. Wikin lisenssistä jne lisätietoja täältä: http://wiki.ubuntu-fi.org/#head-867666147f48c6b667ec0f6be3f5f16852046770

Kiitos!


r
UUSI UBUNTUN KÄYTTÄJÄ: SÄÄSTÄ AIKAASI LUKEMALLA  -> TÄMÄ <-

Asmo Koskinen

  • Käyttäjä
  • Viestejä: 4443
    • Profiili
Vs: MUltihost SSH Wrapper - Asennus ja käyttö
« Vastaus #8 : 16.08.08 - klo:15.59 »
Voisiko ohjeen kirjoittaja/täydentäjät kirjoittaa viestin jossa vahvistavat että     

a) ohje on edelleen käyttökelpoinen Hardyssä (tuorein LTS, tuorein stable)
eli uudet ominaisuudet eivät ole poistaneet tarvetta ohjeelle tai että ohjeessa käytetyt työkalut jne ovat edelleen Hardyssä käytössä
b) antavat luvan ohjeen siirtämiseen Ubuntu Suomen wikiin (http://wiki.ubuntu-fi.org). Kts. Wikin lisenssistä jne lisätietoja täältä: http://wiki.ubuntu-fi.org/#head-867666147f48c6b667ec0f6be3f5f16852046770

Kiitos!


r


Ei saa siirtää. Ohje pitää kirjoittaa uudelleen Ubuntu 8.04:n pohjalta.

Ystävällisin terveisin Asmo Koskinen.