FTP vervangen door SCP: wat met wachtwoord?
SCP werkt niet zonder het ingeven van een password. Nochtans is het bij voorkeur te gebruiken tegenover FTP omdat daar het wachtwoord standaard niet versleuteld wordt doorgestuurd.
Ik las in Linux Journal een interessant artikel* waar kort werd samengevat hoe je veel voorkomende kopieerbewerkingen naar een andere server toch kan automatiseren zonder het wachtwoord telkens in te moeten geven. Zoals te verwachten werkt het met public/private keys, wat enigzins kan afschrikken als je daar niets van weet.
Ik heb nota genomen van de praktische gang van zaken. Ik vertrek met een “van” computer (userbox) en een “naar” computer. Van is mijn eigen pc, met mijn gewone gebruikers account (user). “naar” is een webserver bij mijn provider, waar ik als klant een hosting-account heb. Ik had al een shell script waarin ik scp gebruikte, alleen moest ik bij het uitvoeren van dat script telkens mijn wachtwoord ingeven.
Ik deed nu dus het volgende:
ssh-keygen -t rsa
[user@userbox bin]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Ik deed enter en kreeg:
Enter passphrase (empty for no passphrase):
Ik weet niet waarom er geen nodig is, maar in ieder geval na enter:
Enter same passphrase again:
en nog eens enter:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
ac:ab:81:13:54:9f:36:e5:a2:ff:b0:1e:5d:98:4e:2e user@userbox.mydomain.loc
Daarna kopieerde ik de sleutel naar “authorized_keys” bestand op server:
(dat nog niet bestond – anders met je het ermee aanvullen)
[user@userbox bin]$ scp /home/user/.ssh/id_rsa.pub remote_user@serverdomain.org:.ssh/authorized_keys
remote_user@serverdomain.org’s password:
MiJnPaSwOrD enter
id_rsa.pub 100% |*****************************| 228 00:00
[user@userbox bin]$
daarna startte ik mijn van vroeger bestaand script:
[user@userbox bin]$ ./doc2serverdomain.sh
install_hlp1.php 100% |*****************************| 8412 00:00
install_hlp2.php 100% |*****************************| 10454 00:00
[user@userbox bin]$
Het script vroeg inderdaad geen wachtwoord meer!