[paul@deimos paul]$ ssh 172.18.10
[paul@deimos paul]$ ssh amber.bonhoeffer.nl
[paul@deimos paul]$ ssh -l student amber.bonhoeffer.nl
[paul@deimos paul]$ ssh student@amber.bonhoeffer.nl
[paul@deimos paul]$ ssh -l student amber.bonhoeffer.nl
student@amber.bonhoeffer.nl's password:
_____________________
[* *]
[ Welkom bij Amber ]
[*___________________*]
[student@amber student]$ ls
public_html/ tmp/
[student@amber student]$ exit
logout
Connection to amber.bonhoeffer.nl closed.
[paul@deimos paul]$
Hier zit je dat de gebruiker paul op deimos verbinding maakt met amber
als de gebruiker cursist. Hij geeft het wachtwoord van de gebruiker
cursist en krijgt daarna de commandoregel op de amber computer. Alle
commandos die daarna worden uitgevoerd, zoals ls, worden op amber
uitgevoerd, totdat hij exit intikt. Na het intikken van het commando
exit wordt de verbinding verbroken. Door op Ctrl-D te drukken kan de
verbinding ook worden verbroken. Daarna is aan de prompt te zien dat
hij weer op deimos terug is.
SSH is ook een programma om commando uit te voeren op de andere
computer. Men gebruikt dat als volgt.
[paul@deimos paul]$ ssh student@amber.bonhoeffer.nl ls -al
student@amber.bonhoeffer.nl's password:
total 44
drwx--x--x 4 student student 4096 Apr 18 20:00 .
drwxr-xr-x 20 root root 4096 Apr 17 17:12 ..
-rw------- 1 student student 260 Apr 18 20:00 .Xauthority
-rw------- 1 student student 8 Apr 17 17:22 .bash_history
-rw-r--r-- 1 student student 24 Sep 30 2004 .bash_logout
-rw-r--r-- 1 student student 191 Sep 30 2004 .bash_profile
-rw-r--r-- 1 student student 124 Sep 30 2004 .bashrc
-rw-r--r-- 1 student student 141 Sep 30 2004 .mailcap
-rw-r--r-- 1 student student 3722 Sep 30 2004 .screenrc
drwxr-xr-x 2 student student 4096 Sep 30 2004 public_html
drwx------ 2 student student 4096 Sep 30 2004 tmp
[paul@deimos paul]$
Ook hier vraagt ssh voor een wachtwoord, voert het commando uit op de andere computer, en laat
vervolgens de uitvoer zien op het scherm. Ook zaken zoals omleiding
zijn op deze manier mogelijk. Het is ook
met
een paar trucjes mogelijk om complete directories te backuppen naar een
andere computer via een SSH-verbinding. Een voorbeeld:
$ ls | ssh student@amber.bonhoeffer.nl "cat > lijstje"
of een nog beter voorbeeld
$ echo Dit is een bestand op amber | ssh student@amber.bonhoeffer.nl "cat > lijstje"
Let op: De dubbele quotes zijn nodig om het commando "cat > lijstje"
goed te laten uitvoeren. Ander denkt de shell dat hier bedoeld wordt :"ssh student@amber.bonhoeffer.nl cat > lijstje"
en dat is een heel andere commando. Dankzij de quotes wordt de uitvoer
van het cat commando omgeleid, en niet de uitvoer van het ssh commando.
Het Lijstje op amber kan met het volgende commando worden getoond op de
lokale terminal.
$ ssh student@amber.bonhoeffer.nl cat lijstje
20051223
De volgende regel geeft weer hoe met behulp van SSH en het tar programma een hele map met bestanden wordt gekopieerd. en op de lokale computer wordt ge'untar'd. Op de remote machine wordt de map met tar ingepakt en naar de standaard uitvoer geleid, welke via SSH naar de lokale computer wordt overgebracht en hier met tar wordt uitgepakt. De bestanden worden onderweg niet in een bestand opgeslagen en worden rechtstreeks naar de andere computer overgebracht.
ssh paul@172.17.0.21 "tar zcvf - /data2" | tar zxvf -
Als de computers verbonden zijn via een LAN, dan is het in dit geval nog beter om geen compressie te gebruiken. De processors worden zo minder belast en het kopieren is dan sneller klaar.
ssh paul@172.17.0.21 "tar cvf - /data2" | tar xvf -
SSH laat het ook toe om bestands over te dragen naar de andere computer net zoals FTP. Grafische X-Programmas zoals gFTP op Mandrake 9.2 kunnen zo verbinding maken met SSH-servers precies zoals een FTP-server. Er wordt slechts een andere keuze voor het protocol gemaakt. In gFTP wordt dan SSH2 gekozen in plaats van FTP. Het is mogelijk om op die manier computers te bereiken die door een firewall worden afgeschermd. Er is slechts een open toegang tot de SSH-poort 22 nodig.
VNC kan worden gebruikt om het beeldscherm, toetsenbord en muis van
een andere computer over te nemen. In de Mandrake-distributie is
tightvnc bijgevoegd. Installeer met Software Installatieprogramma de
pakketten tightvnc en tightvnc-server om gebruik te kunnen maken van
VNC in Mandrake.
Wanneer je met VNC contact maakt met een windowserver neem je het echte beeldscherm over. Wanneer je verbinding maakt met Linux, dan is de desktop die je met VNC ziet is een andere dan die zichtbaar is op het beeldscherm. Anders gezegd: er wordt een extra grafische omgeving gestart.

Deze grafische omgeving start je met het vncserver script. Start dit commando op de andere computer waarvan je een grafische omgeving op afstand wilt gebruiken. De syntax is als volgt.
[cursist@PB115A cursist]$ vncserver :1
You will require a password to access your desktops.
Password:
Verify:
New 'X' desktop is PB115A:1
Creating default startup script /home/cursist/.vnc/xstartup
Starting applications specified in /home/cursist/.vnc/xstartup
Log file is /home/cursist/.vnc/PB115A:1.log
Dit start een vncserver met een standaard grafische omgeving binnen een gebruikersomgeving. Merk op dat dit een gebruikerscommando is en dat je geen root hoeft te zijn. De parameter :1 duidt aan dat deze desktop nummer 1 heeft. Als je wilt kan een andere gebruiker desktop :2 starten. Het aantal is in principe onbeperkt. Het vraagt om een wachtwoord en nogmaals hetzelfde wachtwoord. Dit wachtwoord is nodig om straks verbinding te maken met deze vncserver. Je hebt dan de vncserver gestart.
TIP: Op de vncserver op de andere computer te starten, is het nodig om eerst in te loggen met SSH. Je kunt natuurlijk ook achterwege laten en de vncserver direct op de andere computer starten door het ssh commando te combineren met het vncserver commando.
[dezecomputer]$ ssh cursist@anderecomputer vncserver ....
Technische opmerking: de vncserver luistert naar poort 5800 + de desktopnummer. Je kunt de actieve verbindingen en servers opvragen met netstat -a .
Bij het verbinden met deze vncserver wordt om eerder gegeven het wachtwoord gevraagd. Standaard wordt dan de windowmanager Icewm gestart. Het is goed dat dit niet KDE of Gnome is, want dat vraagt veel meer van de computer in termen van geheugenbelasting, schijfbelasting en processorbelasting. Vanaf een andere computer kan dan met het volgende commando een VNC-sessie worden opgebouwd.
$ vncviewer 172.18.10.15:1
of start alleen vncviewer. Het programma vraagt dan vervolgens voor een IP-adres. Dit kan ook vanaf een Windows computer.


Als de resolutie niet geschikt is , dan kan de resolutie opgegeven worden op de commandoregel. Het is wel eerst nodig om de draaiende vncserver et stoppen voordat deze opnieuw kan worden gestart. Dat kan zo:
$ vncserver -kill :1
Dan kan de vncserver opnieuw gestart worden. Hierbij wordt aangegven dat de desktop 640x480 pixels groot moet worden, en dat de kleurdiepte 8 bits is. Door de kleurdiepte te verlagen van 16, 24 of 32 bits naar 8 bits wordt de bandbreedte veel kleiner, en de connectie verloopt sneller. Daardoor reageert de desktop op afstand vlotter.
[cursist@PB115A cursist]$ vncserver -geometry 640x480 -depth 8 :1
New 'X' desktop is PB115A:1
Starting applications specified in /home/cursist/.vnc/xstartup
Log file is /home/cursist/.vnc/PB115A:1.log
Omdat de eerste keer al om een wachtwoord is gevraagd, wordt dat nu niet meer gedaan. Om het wachtwoord later te veranderen, gebruik het commando vncpasswd .
Test de vncserver nu uit. Maak met vncviewer verbinding vanaf deze computer naar de andere computer.
VNC zoals hierboven wordt gebruikt biedt een snelle en eenvoudige
manier om verbinding te maken met Linux of Windows computer met een
grafische omgeving. Deze verbinding is niet veilig, want tijdens het
opbouwen van de verbinding wordt het wachtwoord in klare taal
onversleuteld over het netwerk gestuurd en andere mensen kunnen dat
onderscheppen. Dit geldt ook voor alle toetsaanslagen die tijdens de
sessie worden gestuurd. Ook het wachtwoord mechanisme van VNC zelf is
niet supersterk.
Om VNC veiliger te maken is het nodig om de comunicatie te versleutelen. Dit kan door de verbinding tussen vncviewer en vncserver door een SSH-tunnel te laten lopen. Hierdoorheen worden alle gegevens versleuteld getransporteerd van de ene computer naar de andere, en dit kan ook over internet.
Nu wordt een VNC-over-SSH verbinding opgezet van PB115A naar PB114
(172.18.10.210).
In venster 1:
[cursist@PB115A cursist]$ ssh -L 5901:localhost:5901 172.18.10.210
cursist@172.18.10.210's password:
[cursist@PB114 cursist]$ vncserver -geometry 640x480 -depth 8 :1
New 'X' desktop is PB114:1
Starting applications specified in /home/cursist/.vnc/xstartup
Log file is /home/cursist/.vnc/PB114:1.log
[cursist@PB114 cursist]$
In venster 2:
[cursist@PB115A cursist]$ vncviewer localhost:1
Je krijgt nu de bureaublad van PB114 te zien. De verbinding is veilig. Om te stoppen, sluit vncviewer, en ga naar venster 1.
[cursist@PB114 cursist]$ vncserver -kill :1
Killing Xvnc process ID 2452
[cursist@PB114 cursist]$ exit
Klaar.
In hlds_linux mailinglist wordt melding gemaakt van een aantal SSH
attacks,waarbij loginpogingen worden gedaan vanaf hosts in China,
Taiwan en Singapore op SSH, met usernamen root, admin, guest en test.
Op Uranus zijn ook een aantal mislukte loginpogingen gedaan vanaf
enkele hosts in Taiwain (.tw). Er wordt geadviseerd om root-login op
SSH uit te schakelen. Dit doen ik als volgt:
Now, no one will be able to login to root with out first loggin in as admin and 'su -' to root, and you will be forcing the use of a more secure protocol. Just make sure you remember both passwords!
Een andere maatregel is het instellen van de SSH-daemon op een
niet-standaard poort. Normaliter wordt sshd aktief op poort 22. Door
sshd op een andere poort in te stellen wordt het aantal inlogpogingen
door geautomatiseerde tools verlaagd. Om dit te doen, wijzig als root
/etc/ssh/ssh_config en wijzig de regel
port 22
in bijvoorbeeld
port 2200
of voeg de laatste regel toe als port ontbreekt. Herstart de
SSH-daemon om de configuratie te aktualiseren, als volgt.
service sshd restart
Vanaf de client moet nu wel de poort opgegeven worden om in te
loggen. Bijvoorbeeld:
ssh -p 2200 paul@andin.bonhoeffer.nl
[csadmin@uranus diversen]$ ssh-keygen -t dsaDit maakt een sleutelpaar (key pair) aan: een privesleutel (private key) en een publieke sleutel (public key). Nu wordt de publieke sleutel in
Generating public/private dsa key pair.
Enter file in which to save the key (/home/csadmin/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Passphrases do not match. Try again.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/csadmin/.ssh/id_dsa.
Your public key has been saved in /home/csadmin/.ssh/id_dsa.pub.
The key fingerprint is:
fe:56:83:ea:aa:82:gg:8e:10:52:db:6c:60:e5:38:67 csadmin@uranus.lan
[csadmin@uranus diversen]$
~/.ssh/id_dsa.pub overgebracht naar systeem 2 waarop
je wilt inloggen. [csadmin@uranus csadmin]$ scp ~/.ssh/id_dsa.pub paul@andin.bonhoeffer.nl:/home/paul
paul@amber.bonhoeffer.nl's password:
id_dsa.pub 100% 608 0.6KB/s 00:00
Voeg op systeem 2 de inhoud van id_dsa.pub toe aan het
bestand ~/.ssh/autohorized_keys2 .
[paul@andin paul]$ cat id_dsa.pub >> ~/.ssh/authorized_keys2
Je kunt dit ook direct doen.
[csadmin@uranus csadmin]$ cat ~/.ssh/id_dsa.pub | ssh paul@andin.bonhoeffer.nl "cat >> ~/.ssh/authorized_keys2"
paul@andin.bonhoeffer.nl's password:
[csadmin@uranus csadmin]$ ssh paul@andin.bonhoeffer.nl
Om automatische in te loggen op een systeem op afstand is het handig om key pairs aan te maken. Bij het inloggen wordt nu gevraagd om een passphrase (Het gebruik van versleutelde communicatie met een lege passphrase is onveilig en wordt afgeraden). De ssh-agent maakt het mogelijk om vervolgens in te loggen zonder om een wachtwoord of passphrase te worden gevraagd, maar heeft een aantal nadelen, zoals het starten van diverse instanties van ssh-agent. Keychain geeft hier de oplossing en maakt het mogelijk om 1 instantie van ssh-agent per systeem te gebruiken.
Installeer keychain vanaf hier . Lees eventueel de uitstekende introductie in het gebruik van keychain.
download keychain met bijvoorbeeld Lynx
[paul@andin paul]$ lynx http://dev.gentoo.org/~agriffis/keychain
Installeer Keychain RPM
[root@andin software]# rpm -ivf keychain-2.5.3.1-1.noarch.rpm
warning: keychain-2.5.3.1-1.noarch.rpm: V3 DSA signature: NOKEY, key ID 20104eb0
Preparing packages for installation...
keychain-2.5.3.1-1
Keychain werkt als volgt. De eerste keer dat keychain start, controleert het of ssh-agent al draait. Wanneer ssh-agent nog niet draait, dan start het ssh-agent en leidt de uitvoer van ssh-agent in .ssh_agent . Dit stelt de variabelen SSH_AUTH_SOCK en SSH_AGENT_PID in. Volgende instanties van keychain starten niet meer ssh-agent, maar voeren slechts het script .ssh-agent uit waardoor de bestaande en reeds draaiende ssh-agent wordt gebruikt.
Voeg het volgende toe aan .bash_profile :
#!/bin/bash
#example ~/.bash_profile file
/usr/bin/keychain ~/.ssh/id_rsa
#redirect ~/.ssh-agent output to /dev/null to zap the annoying
#"Agent PID" messagesource ~/.ssh-agent > /dev/null
Ook in cronjobs is de ssh-agent nu bereikbaar. Zorg ervoor dat cronjobs starten met
source ~/.ssh-agent
RSH
Telnet
SSH
VNC
VNC over SSH-tunnel
Diverse links