LX-SVS-INFO-sshclient

Updated sep/13/10 14:01

SSHclient - Debian

  1. eenvoudig gebruik

    Een ssh-client kan meer dan alleen een terminal openen, maar toch gaan we met dit eenvoudigste voorbeeld van start. Gebruiker jan moet in dit geval ook op de ssh-server bestaan. Je tikt het paswoord van de gebruiker in zoals dat op de server is ingevoerd:

    jan@lx801:~$ ssh 172.16.22.3
    bert@172.16.22.3's password: ********

    The authenticity of host (172.16.22.3) can't be established.
    RSA key fingerprint is 79:e4:46:a9:4c:80:ae:1c:80:bf:a2:53:16:97:95:04.

    Are you sure you want to continue connecting (yes/no)?  yes

    (De hogere drie regels worden slechts bij de allereerste ssh-login gevraagd)

    Linux pc2203 2.6.18-5-686 #1 SMP Fri Jun 1 00:47:00 UTC 2007 i686
    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.
    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    You have new mail.
    Last login: Mon Mar 3 14:38:56 2008 from 172.16.31.101

    jan@pc2203:~$ exit

    (Let op de prompt: we werken nu op een andere computer. Na exit keren we terug)

    jan@lx801:~$
  2. gebruik van een FQDN

    In de plaats van het ip-address, kan je ook een fully qualified domainname gebruiken. Bijvoorbeeld tech.bbc.co.uk
    Indien in je /etc/resolv.conf een zoekdomein hebt ingegeven kan je de FQDN afkorten tot het gedeelte voor de eerste "." (dot)

    bert@lx801:~$ ssh ad4.bbc.co.uk
    Password: ********
    Last login: Thu Feb 28 18:48:31 2008 from dd5768d29.access.telenet.be
    i am anna domino 4
    bert@AnnaDomino4:~> ls
    bin
    dhcpd.conf.tech.8226
    public_html
    cursussen
    dns_config
    squid.conf.tech.8226

    SuSEfirewall2.tech.8226

    bert@AnnaDomino4:~> exit
    bert@lx801:~$
  3. inloggen als iemand anders

    Je kan inloggen als een andere gebruiker op de andere computer als volgt:

    $ ssh root@172.16.22.3

    maar dit mag ook:

    $ ssh 172.16.22.3 -l root
  4. secure copy

    Als sshd op een remote computer draait kan je ook gebruik maken van het commando secure copy: scp

    enkele voorbeelden:

    pc2203:$ scp lokaalbestand ad4:/home/piet/

    kopiëert een file met als naam lokaalbestand in de huidige directory van mijn lokale computer pc2203 naar de directory /home/piet van de computer ad4. Het hogere voorbeeld werkt alleen als we schrijf-rechten hebben als huidige gebruiker op de server in /home/piet.

    In het volgende voorbeeld kopiëren we als remote-user piet. Het is zijn paswoord dat op de remote computer moet worden ingetikt.

    ludo@lx801:~/cursus_services $ scp * piet@ad4.bbc.co.uk:/home/bert/services
    Password: ********
    004_debian_netinstall.odt 100% 20KB 19.6KB/s 00:00
    005_debian_DVD-install.odt 100% 17KB 17.2KB/s 00:00 010_netwerkconfiguratie_linux.odt 100% 12KB 12.2KB/s 00:00 125_iptables_h16_.odt 100% 42KB 41.9KB/s 00:00
    135_vpn_h16_.odt 100% 31KB 30.6KB/s 00:00 201_shell_script_absolute_beginner.odt 100% 12KB 12.4KB/s 00:00

    ludo@lx801:~/cursus_services $

    We kopiëerden alle bestanden ( * ) in de huidige directory ( cursus_services ) van computer lx801 naar de directory /home/piet/services van de computer ad4.bbc.co.uk

    Nog een derde voorbeeld:

    ludo@lx801:~$ scp piet@ad4.bbc.co.uk:/home/piet/services/024* .
    Password: ********
    024_sshclient.debian.odt 100% 23KB 23.3KB/s 00:01
    ludo@lx801:~$

    We kopiëerden als user piet op computer ad4.bbc.co.uk vanuit de remote directory /home/piet/services alle bestanden die beginnen met "024" naar mijn huidige (.) directory.
  5. grafische toepassingen op afstand

    Als sshd op een remote computer draait kan je ook grafische toepassingen van die remote computer draaien op je lokale machine. Dit werkt een beetje als remote desktop maar het is verfijnder en eenvoudiger (niet de volledige desktop maar slechts 1 toepassing) en veiliger (over ssh):

    claire@lx801:~$ ssh -X -f gust@172.16.22.3 "/usr/bin/nautilus"
    gust@172.16.22.3's password: ********
    claire@lx801:~$

    start de toepassing nautilus (file manager) op
    vanuit directory /usr/bin op de remote computer 172.16.22.3
    als gebruiker gust,
    in grafische mode (-X)
    als achtergrond process (-f)

    Op dezelfde manier kan je een volledige desktop starten van een andere computer, of alleen een taakbalk ervan:

    claire@lx801:~$ ssh -X -f gust@172.16.22.3 "gnome-panel"
    gust@172.16.22.3's password: ********
    claire@lx801:~$

  6. meerdere grafische toepassingen op afstand

    We kunnen een ssh sessie starten waarbij we tegelijk terminal zijn op afstand, en alle grafische toepassingen die we intikken aan de remote shell op ons lokaal beeldscherm kunnen overbrengen:

    jan@linux800 $ ssh -Y 192.168.0.4
    Password: ********
    Last login: Tue Sep  7 20:06:08 2010 from 192.168.0.144
    slow and steady: laptop1 ...

    jan@laptop1:~> xclock &
    [1] 8344
    jan@laptop1:~> konqueror &
    [2] 8347
    bert@laptop1:~> kbuildsycoca running...
    Mutex destroy failure: Device or resource busy

    [1]-  Done                    xclock
    [2]+  Done                    konqueror

    jan@laptop1:~> exit
    logout
    Connection to 192.168.0.4 closed.

    jan@linux800 $
  7. niet grafische toepassingen op afstand

    Heel simpel:

    $ ssh 192.168.0.4 "uname -a
    "
    Password: ********
    Linux laptop1 2.4.21-303-default #1 Tue Dec 6 12:33:58 UTC 2005 i586 i586 i386 GNU/Linux


    Iets ingewikkelder:


    Op de server intec.jasper.nl draait een ssh-server op poort 8427. Dat is gebruikelijk om simpele poortscanners om de tuin te leiden. Om ssh te verbinden op poort 8427 gebruiken we de optie -p

    We lanceren de applicatie top op afstand in onze huidige terminal, maar die applicate gedraagt zich niet goed zonder de -t

    (Force pseudo-tty allocation.  This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services.  Multiple -t options force tty allocation, even if ssh has no local tty.)

    $ ssh -p 8427 -t intec.jasper.nl top
    piet@intec.relotec.nl's password: ********

    top - 14:57:46 up 11 days,  6:20,  1 user,  load average: 0.00, 0.00, 0.00
    Tasks:  72 total,   1 running,  71 sleeping,   0 stopped,   0 zombie
    Cpu(s):  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Mem:   1036092k total,   442028k used,   594064k free,   185032k buffers
    Swap:  1823336k total,        0k used,  1823336k free,   139156k cached

      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                
     3348 gdm       20   0 37860  25m 8268 S  0.3  2.5   5:36.67 gdmgreeter                             
        1 root      20   0  2100  684  588 S  0.0  0.1   0:05.66 init                                   
        2 root      15  -5     0    0    0 S  0.0  0.0   0:00.00 kthreadd                               
        3 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/0                            
        4 root      15  -5     0    0    0 S  0.0  0.0   0:02.14 ksoftirqd/0                            
        5 root      RT  -5     0    0    0 S  0.0  0.0   0:00.02 watchdog/0                             
        6 root      15  -5     0    0    0 S  0.0  0.0   0:19.98 events/0                               
        7 root      15  -5     0    0    0 S  0.0  0.0   0:00.00 khelper
       39 root      15  -5     0    0    0 S  0.0  0.0   0:00.76 kblockd/0


  8. Verbinden op een gekend ip-adres met een nieuwe installatie

    # ssh 192.168.1.102
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!        @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    Someone could be eavesdropping on you right now (man-in-the-middle attack)!
    It is also possible that the RSA host key has just been changed.
    The fingerprint for the RSA key sent by the remote host is
    2e:12:c5:56:45:17:aa:5e:85:b5:8c:51:f7:23:de:88.
    Please contact your system administrator.
    Add correct host key in /root/.ssh/known_hosts to get rid of this message.
    Offending key in /root/.ssh/known_hosts:2
    RSA host key for 192.168.1.102 has changed and you have requested strict checking.
    Host key verification failed.

    #

    Het gebeurt wel eens dat je de volgende melding krijgt.

    De oorzaak is meestal dat je een bestaande machine hebt geherinstalleerd. De identificatie sleutels van die oude machine komen dan niet meer overeen met diegene die ssh had opgeslagen in het bestand ~/.ssh/known_hosts

    Hetzelfde gebeurt indien een nieuwe machine is in gebruik genomen op dat oude ip-adres.

    Maar, het kan natuurlijk ook zijn dat er iemand probeert jou te hacken. Die iemand stuurt jouw pakketten dan naar zijn machine om te kijken wat jij allemaal wel intikt. Deze boodschap vordert altijd jouw voorzichtigheid! Vergewis u ervan dat er effectief een upgrade van hardware of software is gebeurd voor dat u
    de file ~/.ssh/known_hosts leegmaakt, of de juiste key eruit verwijdert.
  9. Een button met ssh op gnome panel

    Het gebeurt wel eens dat je een ssh-commando wilt verkorten tot een button op je taakbalk of op je linux desktop.

    Type: application
    Name: ssh linux800
    Command: ssh -X -f jan@ares.linux800.be "gnome-terminal"
    Comment: remote access op ares

    Bij uitvoeren van deze shortcut komt er dan bij de meeste distributies een klein venster op je scherm, waarin je je paswoord kan intikken. Indien dit zoals bij debian4 niet het geval is moet je een toepassing ssh-askpass installeren. Dat doe je als volgt:

    # apt-get install ssh-askpass