SSH-PKA-Servertoegang
Key pair-authenticatie - Opzetten
Tot eind 2014 logde ik in op m'n vps mbv. inlognaam en wachtwoord. Vanaf eind 2014 maak ik gebruik van key pair authentication: Authenticatie vindt plaats middels public key encryption op basis van de computer waarmee ik inlog. Dat heeft twee voordelen:
- Dan hoef ik bij inloggen meestal nog maar één keer per sessie een wachtwoord op te geven
- Veiliger: Alleen bepaalde computers kunnen inloggen.
SSH-sleutels aanmaken
Kijk of er een map ~/.ssh
is met daarin deze bestanden:
id_rsa
Privésleutelid_rsa.pub
- Publieke sleutel
Als deze er niet zijn, genereer ze dan als volgt:
ssh-keygen
Publieke sleutel uploaden naar de vps
Upload de publieke sleutel. Bv.:
scp ~/.ssh/id_rsa.pub dvb-02:
Configuratie voltooien
Log in op de vps en voltooi de configuratie:
mkdir .ssh mv id_rsa.pub .ssh/authorized_keys chown -R inlognaam:inlognaam .ssh chmod 700 .ssh chmod 600 .ssh/authorized_keys
Test
Test of dit werkt door in te loggen op de gebruikelijke manier. Mijn werkstation vraagt via een pop-up scherm om een wachtwoord, en dat blijkt het wachtwoord op de server te zijn. Daarna kan ik probleemloos inloggen, dus zonder en wachtwoord op te geven via de terminal.
SSH-wachtwoord-authenticatie & root-login uitzetten
Ik kan nu inloggen middels public key authentication vanaf drie computers. Inloggen mbv. een loginnaam en wachtwoord, zet ik daarom uit. Handelingen op de betreffende servers:
Bewerk het sshd-configuratiebestand:
sudo vim /etc/ssh/sshd_config
En voeg toe/verander:
PasswordAuthentication no
Schakel root-login uit middels:
PermitRootLogin no
Herstart de ssh-deamon middels
sudo service ssh restart
En test vanaf een werkstation middels:
ssh fantasienaam@dvb-02
en dit geeft foutmelding
Permission denied (publickey).
SSH-sleutel toevoegen - Loginnaam/wachtwoord-situatie
- Situatie: Inloggen gaat via loginnaam en wachtwoord. Ik wil nu vanaf een tweede computer toegang hebben tot de server zonder inloggen
- Te doen: Ik moet de publieke sleutel van dit werkstation toevoegen aan
~/.ssh/authorized.keys
.
Dat kan uiteraard middels scp
of anders kopiëren en plakken, maar het kan veel mooier via het dedicated commando ssh-copy-id
. Zie deze sessie:
ssh-copy-id dvb1 /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 strompf@dvb1's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'dvb1'" and check to make sure that only the key(s) you wanted were added. strompf@blackbox-2014 ~/.ssh $ ssh dvb1 Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.13.0-37-generic x86_64)
Er staan nu inderdaad twee sleutels in ~/.ssh/authorized.keys
:
ssh-rsa AAAAB4NzaC1yc2EAAAADAQABAAABAQDbSWnEiJEDXSahI5HRyGmPjSublahblahblahJAQABAAABAQDbSWnEiJEDXSahI5HRyGmPjSuAQABAAABAQDbSWnEiJEDXSahI5HRyGmPjSu AQABAAABAQDbSWnEiJEDXSahI5HRyGmPjSuAQABAAABAQDbSWnEiJEDXSahI5HRyGmPjSuAQABAAABAQDbSWnEiJEDXSahI5HRyGmPjSuAQABAAABAQDbSWnEiJEDXSahI5HRyGmPjSuAQABAA ABAQDbSWnEiJEDXSahI5HRyGmPjSuAQABAAABAQDbSWnEiJEDXSahI5HRyGmPjSuAQABAAABAQDbSWnEiJEDXSahI5HRyGmPjSuAQABAAABAQDbSWnEiJEDXSahI5HRyGmPjSuAQABAAABAQDb SWnEiJEDXSahI5HRyGmPjSuAQABAAABAQDbSWnEiJEDXSahI5HRyGmPjSu strompf@Hiero ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWANi6MEgblahblahBAQDWANi6MEgblahblahBAQDWANi6MEgblahblahBAQDWANi6MEgblahblahBAQDWANi6MEgblahblahBAQDWANi6ME gblahblahBAQDWANi6MEgblahblahBAQDWANi6MEgblahblahBAQDWANi6MEgblahblahBAQDWANi6MEgblahblahBAQDWANi6MEgblahblahBAQDWANi6MEgblahblahBAQDWANi6MEgblahb BAQDWANi6MEgblahblahBAQDWANi6MEgblahblahBAQDWANi6MEgblahblahBAQDWANi6MEgblahblahBAQDWANi6MEgblahblahBAQDWANi6MEgblahblahBAQDWANi6MEgblahblahBAQDWA Nifdfdsfdsfdsfds6MEgblahblahlahBAQDWANi6MEgblahblah strompf@blackbox-2014
Je kunt zien dat dit publieke sleutels betreffen, want ze beginnen met ssh-rsa AAAAB3
. Echte sleutels hebben trouwens niet zo vaak de tekenreeks blahblahblah
in zich.
SSH-sleutel toevoegen - PKE-situatie
Maar hoe voeg je een computer toe aan een situtatie waarbij er al gebruik wordt gemaakt van public key encryption? Ik vermoed dat er in ieder geval twee opties zijn:
- PKE uitzetten, sleutel toevoegen, PKE aanzetten
- Sleutel toevoegen via een computer die al is geauthoriseerd → Dit is wat ik doe.