SSH & keys
-
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. - 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 ...]
- ubuntu server
Op je ubuntu server configureer je eenuser
... 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
- in de sshd (
- 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 | +-----------------+
-
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 ~]$
-
root
In de settings vansshd_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. - putty & keys vanaf windows
Om een private key te gebruiken metputty
vanuit windows, moeten we deze converteren naar putty-formaat met de utilityputtygen
. 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 ...
- 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.