home       inleiding       sysadmin       services       links       bash       werk       nothing      

SSH & keys

 

  1. waarom
     
    Of we nu werken op afstand op servers in linux of windows, of met network devices zoals routers of switches, we hebben altijd een beveiligde verbinding nodig naar deze servers, of network devices. Als we werken met een public / private key paar werken we veel veiliger dan als we werken met een in-te-tikken paswoord. Dat paswoord kan gefilmd worden over je schouder, en is bijgevolg onveiliger dan te werken via een sleutel-paar. Jij houdt je private sleutel in je zak, en zet een publiek slot op een server of een network-device.

  2. opzet
     
    Gebruik een ubuntu server en een linux mint client (beide in bridged of nat-netwerk).
    We genereren op de linuxmint client, op je standaard user account een public-private key paar.
    Zet daarna de public key op je servers,
    Zet tenslotte de private key op een tweede client (ook een lxmint) en kijk in punt 3 en 4 of die er ook mee op de server kan.
    [de private key blijft jouw eigendom, de public key zet je op de servers waarop jij mag werken ...]
     
  3. ubuntu server
     
    Op je ubuntu server configureer je een user ... met hetzelfde paswoord als op de mint ...
    • in de sshd (/etc/ssh/sshd_config)
    • op de server een poort 54322 toevoegen
    • op de server een listenaddress :
    • als je server-ipv4-adres = 192.168.248.78 wordt in de config het volgende toegevoegd:
       
      $ sudo vim /etc/ssh/sshd_config
       
      ...
      # The strategy used for options in the default sshd_config shipped with
      # OpenSSH is to specify options with their default value where
      # possible, but leave them commented.  Uncommented options override the
      # default value.
       
      Include /etc/ssh/sshd_config.d/*.conf
       
      Port 22
      Port 54322
      ListenAddress 192.168.248.78:54322
      #AddressFamily any
      #ListenAddress ::
      ...

      daarna de ssh-service herstarten met:
       
      $ sudo systemctl restart ssh
      [sudo] password for user: *********
       
      en de service testen met ...:
      user@ubu22-02:~$ sudo systemctl status ssh

      ● ssh.service - OpenBSD Secure Shell server
      Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
      Active: active (running) since Thu 2024-02-22 20:37:22 UTC; 8s ago

       
       

  4. ssh-keygen: op de mint client
     
    Begin met de creatie van een key-paar:
     
    $ ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/user/.ssh/id_rsa):  < ENTER>
    Enter passphrase (empty for no passphrase):  x-x-x-x-x
    Enter same passphrase again:  x-x-x-x-x
    Your identification has been saved in /home/user/.ssh/id_rsa2.
    Your public key has been saved in /home/user/.ssh/id_rsa2.pub.
    The key fingerprint is:
    7e:c1:0d:b2:31:74:3a:26:68:74:6a:8a:fb:eb:6d:8e user@lap2012
    The key's randomart image is:
    +--[ RSA 2048]----+
    |    . . . .      |
    |   . + . o       |
    |    = . B .      |
    | . +   o B o     |
    |. .     S o .    |
    | .     .   .     |
    |.       . .      |
    | . o.    .       |
    | .E+o            |
    +-----------------+

     

  5. ssh-copy-id

    plaats de key vanuit de linux mint client op de ubuntu server met het volgende commando:
    $ ssh-copy-id [​-i .ssh/id_rsa.pub] [-p <portnr>] [<user-account>@]<destination>
     
    ... op je ubuntu server met externe poort 54322 en user-account "user"
    $ ssh-copy-id -p 54322 user@ip-adres-ubuntu
     

    /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
    /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
    user@10.28.101.14's password:  x-x-x-x-x
    Number of key(s) added: 1
    Now try logging into the machine, with:   "ssh -p '54322' 'ip-adres-ubuntu'"
    and check to make sure that only the key(s) you wanted were added.

    We proberen vervolgens in te loggen:
    user@thismachine:~ $ ​ssh ip-adres-ubuntu -p 54322

    Last login: Fri Apr 29 13:20:37 2016 from 10.28.101.101
    [user@localhost ~]$ 

     

  6. root
     
    In de settings van sshd_config staat meestal
    PermitRootLogin prohibit-password
    Cre-eer een key-paar voor je root account en test via intnet van mint naar je lokale ubuntu/centos.

  7. putty & keys vanaf windows
     
    Om een private key te gebruiken met putty vanuit windows, moeten we deze converteren naar putty-formaat met de utility puttygen. Dit kan onder ubuntu/mint als volgt:
     
    $ cd ~/.ssh
    $ sudo apt-get install putty-tools
    $ sudo puttygen id_rsa -o id_rsa.ppk
    Enter passphrase to load key: x-x-x-x-x
    $ ls -l
    total 28
    -rw------- 1 user user 1766 Apr 29 13:18 id_rsa
    -rw------- 1 root root 1460 Apr 29 14:12 id_rsa.ppk
    -rw-r--r-- 1 user user  394 Apr 29 13:18 id_rsa.pub
    -rw------- 1 user user 6418 Apr 29 10:19 known_hosts
    -rw-r--r-- 1 user user 6418 Apr 29 09:44 known_hosts.old

    Je kan nu de id_rsa.ppk gebruiken in putty ...

    screen-shot-2013-05-15-at-8.31.44-am

     

  8. cloud (niet van toepeaasing)
     
    Vraag toegang aan je cloud servers (in-house) en (outside) aan de docent. Plaats hierop ook je public key en probeer in te loggen zonder paswoord.