Ssh getting started

Reggy Ekkebus, reggy@zeelandnet.nl

v0.1, 7 november 1999


Dit document beschrijft hoe je ssh installeert en gebruikt.

1. Introductie

Het belangrijkste doel van dit document is dat mensen ssh snel leren kennen en gebruiken.

1.1 Nieuwe versies van dit document

Nieuwe versies van dit document zullen te vinden zijn tussen de nederlandse howto's op http://www.nl.linux.org/doc/HOWTO/.

1.2 Feedback

Ik verwelkom beslist elke feedback over deze Getting Started. Het zou leuk zijn als je een mailtje stuurde als je kritiek hebt, suggesties, verbeteringen, etc. Ik hoop dat ik mensen kan helpen met deze Getting Started en als ik dat deed, stuur me dan een mailtje:

reggy@zeelandnet.nl

1.3 Standaard Disclaimer

Er kan geen aansprakelijkheid voor de inhoud van dit document worden geaccepteerd. Alles mag gebruikt worden, maar op eigen risico. Ik neem hiervoor geen verantwoordelijkheid.

1.4 Copyright Informatie

Dit document valt onder het copyright (c)1999 Reggy Ekkebus en wordt onder de volgende voorwaarden gedistribueerd:

Dit document mag geheel of gedeeltelijk worden gedistributeerd en gereproduceerd, via elektronisch of fysiek medium, zolang de copyright vermelding op alle kopieën behouden blijft. Voor vragen mail: reggy@zeelandnet.nl

2. Wat is ssh?

Ssh (Secure shell) werkt als een soort omhulsel rond de data die je verzendt over het internet, daardoor is het erg veilig en is het moeilijker voor iemand om misbruik te maken van je data. Als je telnet gebruikt dan is het mogelijk dat anderen zien wat je doet, ook kunnen ze eventueel je wachtwoord lezen. Daarom raad ik aan om ssh te gebruiken in plaats van telnet.

3. De installatie

3.1 Downloaden en uitpakken

Dit dokument is geschreven voor ssh-1.2.27. SSH is makkelijk te installeren, echter je moet hiervoor eerst de source code downloaden. Deze is te vinden op de ftp site van ssh: ftp://ftp.cs.hut.fi/pub/ssh/

Als je de sourcecode hebt gedownload, moet je eerst root worden. Eerst moet de .tar.gz file uitgepakt worden.

#tar xfvz ssh-1.2.27.tar.gz
of
#gunzip ssh-1.2.27.tar.gz && tar xfv ssh-1.2.27.tar

3.2 Het compileren en installeren

Ga naar de directory waar ssh is uitgepakt.

#cd ssh-1.2.27  


dan:


#./configure

Als dit gedaan is gaan we het zaakje compileren.

# make

dan het laatste commando en ssh is geinstalleerd:

# make install

4. sshd

4.1 sshd starten

Sshd kun je starten door simpelweg het volgende als root in te typen:


# /usr/local/sbin/sshd

4.2 sshd automatisch starten

Om sshd gelijk na het booten te laten starten moet je de volgende regel in je /etc/rc.d/rc.local toevoegen:


/usr/local/sbin/sshd

Je kunt ook een scriptje maken om bij het opstarten gelijk sshd te laten starten zoals in RedHat 6.X versies met [ok] of [failed]. Hieronder staat een scriptje enkel voor RH6.X !

Je moet een bestandje aanmaken in de dir /etc/rc.d/init.d/ Dit doe je als volgt:


#touch /etc/rc.d/init.d/sshd     

Nu moet het bestandje nog executable gemaakt worden, dit gaat als volgt:


#chmod +x /etc/rc.d/init.d/sshd

Hieronder het voorbeeld wat in het /etc/rc.d/init.d/sshd bestandje moet staan; je hoeft het niet over te typen, je kunt het gewoon met copy en paste kopieëren.

#! /bin/sh
#

# Source function library.
. /etc/rc.d/init.d/functions

RETVAL=0
PATH=$PATH:/usr/local/sbin
# See how we were called.
case "$1" in
  start)
        echo -n "Starting ssh daemon:"
        daemon sshd
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/sshd
        ;;
  stop)
        echo -n "Stopping ssh daemon: "
        killproc sshd
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sshd
        ;;
  status)
        status sshd
        RETVAL=$?
        ;;
  restart)
        $0 stop
        $0 start
        RETVAL=$?
        ;;
  reload)
        killall -HUP sshd
        RETVAL=$?
        ;;
  *)
        echo "Usage: $0 {start|stop|status|restart}"
        exit 1
esac

exit $RETVAL

Dan nu de links maken voor het opstarten in runlevel 3 en 5


ln -s /etc/rc.d/init.d/sshd /etc/rc.d/rc3.d/S40sshd

en

ln -s /etc/rc.d/init.d/sshd /etc/rc.d/rc5.d/S40sshd

Nu zou de ssh deamon automatisch moeten opstarten. Je kunt dit testen door de machine te rebooten.

5. Ssh gebruiken

5.1 ssh klaar voor gebruik maken.

Ssh staat, als deze gecompileerd is, in /usr/local/sbin /usr/local/bin. De /usr/local directory is niet standaard in het PATH opgenomen wat wel zo handig zou zijn. Dit is echter zeer gemakkelijk op te lossen. Met vi (of welke andere editor dan ook) gaan we /etc/profile aanpassen. Hier zie je het stukje dat we gaan aanpassen:

PATH="$PATH:/usr/X11R6/bin"      
Dit wordt:
PATH="$PATH:/usr/X11R6/bin:/usr/local/bin"
Aan het einde is `:/usr/local/bin` toegevoegd.

5.2 Remote inloggen

Als dit gedaan is moet je even opnieuw inloggen, anders werkt het niet. Je hoeft de computer niet opnieuw op te starten. Als je dit allemaal gedaan hebt kun je naar een andere computer `sshen'. Hiervoor moet op de andere computer ook ssh draaien.

Dit doe je als volgt:

#ssh -l user machine

Bij user moet de usernaam komen te staan. Bij het stukje machine moet de naam komen te staan van de computer waar je wilt inloggen. Nu kun je met een "gerust hart" op de andere machine je taken uitvoeren zonder dat iedereen alles over je te weten kan komen.

5.3 Copieëren

Als je ssh installeert, wordt gelijk het programmaatje scp geïnstalleerd. Dit is 'secure copy'. Dit wil zeggen dat je ook bestanden van de ene naar de andere machine met het ssh protocol kan copieëren. Redelijk veilig dus. Dit gaat als volgt:

#scp foo.bar user@machine:/foo/bar/dir

Bij de user moet ook hier de usernaam komen te staan. Bij het stukje machine moet de naam komen te staan van de computer waar je het bestand naar wil copieëren. Je moet hiervoor wel een geldig account op de desbetreffende machine hebben. /foo/bar/dir is de directory op de computer waar je het bestand naartoe wilt copieëren.

6. Tips

6.1 Automatisch inloggen

Met ssh kun je ook automatisch inloggen. Dat wil zeggen: je hoeft dan geen wachtwoord meer in te typen, alleen de gebruikersnaam. Dus als je zelf op je eigen pc ssh hebt draaien en je hebt een account op een andere pc waar ook ssh op draait, dan kun je zonder password verificatie inloggen. Ik gebruik mijn eigen naam "reggy" als voorbeeld en heb een eigen pc genaamd machine1 en heb een account op machine2.

Eerst moeten er sleutels aangemaakt worden. Dit doe je met 
het volgende commando als user reggy dus NIET als ROOT.

[reggy@machine1 ~]$ ssh-keygen
Initializing random number generator...
Generating p:  .....................++ (distance 350)
Generating q:  ...++ (distance 40)
Computing the keys...
Testing the keys...
Key generation complete.
Enter file in which to save the key (/home/reggy/.ssh/identity): "Hier gewoon ENTER"
Enter passphrase:  "Hier gewoon ENTER"    
Enter the same passphrase again: "Hier gewoon ENTER"    
Your identification has been saved in /home/reggy/.ssh/identity.
Your public key is:
1024 33 1578883667803923639506503613015740277011057720001362317013
251593339032775758931449019444810787045564661395699194491235382056
062198514889258287317735633926925641762889895565459431377497979908
908987828950635311242049857861576475174740485463667721671730069726
14025579455881663970361374629865710810037639261457019
reggy@machine1
Your public key has been saved in /home/reggy/.ssh/identity.pub

Klaar...

Dit levert twee bestanden op in /home/reggy/.ssh, namelijk:

identity
identity.pub


Het identity.pub bestand kopieëren we naar machine2, daar zetten we hem
in  /home/reggy/.ssh/ en we noemen het bestand authorized_keys.

Nu staat er in het bestand het volgende:

1024 33
157888366780392363950650361301574027701105772000136231701325159333903277575
89314490194448107870455646613956991944912353820560621985148892582873177356339269256417628898955
6545943137749797990890898782895063531124204985786157647517474048546366772167173
006972614025579455881663970361374629865710810037639261457019 reggy@machine1


Let op!: Dit moet allemaal op 1 regel staan anders werkt het niet. 

Als dit gebeurd is, moeten de permissies van de bestanden op machine2
nog goed worden gezet.

[reggy@machine2 ~]$ chmod 700 ~/.ssh
[reggy@machine2 ~]$ chmod 600 ~/.ssh/authorized_keys


Terug naar machine1 en proberen maar:

[reggy@machine1 ~]$ ssh -l reggy machine2

Als het goed is zie je dan gelijk:

[reggy@machine2 ~]$

En je bent op de andere machine :-)

6.2 Aanvullende Tips

Als je nog een tip hebt, twijfel dan niet om hem te sturen, want als het een goede tip is komt hij in de howto.