Secure shell
De Bricosoft.
ssh, Secure shell ou coquillage sécurisé est un protocole de communication beaucoup plus mieux que telnet.
Sommaire |
Authentification SSH par clés
Sur votre terminal, générez la paire de clé privée-publique.
toto@ordi$ sudo -s root@ordi# mkdir /root/rsync root@ordi# ssh-keygen -t rsa -f /root/rsync/cle-ssh-rsync-ordi Generating public/private dsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/rsync/cle-ssh-rsync-ordi. Your public key has been saved in /root/rsync/cle-ssh-rsync-ordi.pub. The key fingerprint is: 11:92:6b:5f:75:11:59:7e:a6:4e:d4:47:a6:3d:28:a2 root@ordi
Copie de la clé publique
à la mano
La méthode décomposée est de copier la *clé publique* sur le serveur à administrer :
root@ordi# scp /root/rsync/mirror-rsync-key.pub toto@serveur:/home/toto/
Maintenant sur le serveur, ajoutez la clé fraichement copiée dans la liste de clés ssh du compte utilisateur. Si ~/.ssh/authorized_keys n'existe pas créez les.
toto@serveur:~$ cd ~/.ssh/ toto@serveur:~/.ssh$ cat ~/cle-ssh-rsync-miroir.pub >> authorized_keys
Empêchez l'écriture pour le groupe et les autres :
toto@serveur:~/.ssh$ chmod go-w $HOME $HOME/.ssh $HOME/.ssh/authorized_keys
avec ssh-copy-id
L'alternative est d'utiliser ssh-copy-id qui installe votre clé publique à la suite du authorized_keys de la machine distante :
ssh-copy-id -i ~/.ssh/id_dsa.pub toto@serveur.zz
L'argument i pointe la clé publique (défaut : ~/.ssh/id_rsa.pub)
Pour un port différent :
ssh-copy-id -i ~/.ssh/id_dsa.pub "-p 6666" toto@serveur.zz
Diff d'un fichier local avec un distant
Comparaison entre fichier via ssh.
$ ssh -p 4242 toto@serveur.zz cat /chemin/vers/fichierdistant.txt | diff -b /chemin_vers/fichierlocal.txt -
L'on peut garder le port dans un coin (~/.ssh/config) si l'on n'a pas la mémoire des chiffres :
$ whoami god $ ssh www.serveur.zz ssh: connect to host www.serveur.zz port 22: Connection refused
$ echo -e "host www.serveur.zz\n Port 4242" >> ~/.ssh/config
$ ssh www.serveur.zz Linux www.serveur.zz blablabla...
Copie d'un fichier distant dans le presse-papier local
Qui n'a jamais rêvé un jour d'envoyer le contenu d'un looooooooooooong fichier directement dans le presse-purée papier ? Qui n'a jamais rêvé de ces mondes souterrains, de ces mers lointaines, peuplées de légendes, ou d'une richesse soudaine qui se conquerrait au détour d'un chemin de la Cordillère des Andes. Qui n'a jamais souhaité voir le soleil souverain guider ses pas au cœur du pays Inca, vers la richesse et l'histoire des Mystérieuses Cités d'Or ?
$ sudo apt-get install xclip $ ssh -p 4242 toto@serveur.zz cat ~/.bashrc | xclip
Et voilà, zavez plus qu'à coller où vous souhaitez (clic sur bouton du milieu de la souris, Einstein !).
Limitation de bande passante
Pour ne pas boucher le tuyau :
- tar -cvvj mes_trucs/ | cstream -t -80k | ssh -p 5555 toto@serveur.com tar -xj -C /home/toto/mes_trucs_sauves_a_distance
ici, va cstream va essayer de limiter la bande passante sans dépasser les 80 kilo octets par secondes.
Si le dépassement ponctuel ne gène pas enlever le '-' de 80k :
- tar -cj mes_trucs/ | cstream -t 80k | ssh -p 5555 toto@serveur.com tar -xj -C /home/toto/mes_trucs_sauves_a_distance
Erreurs courantes
WARNING: UNPROTECTED PRIVATE KEY FILE!
WARNING: UNPROTECTED PRIVATE KEY FILE! plutôt stressant n'est ce pas ? Ben t'as dû de gourrer en spécifiant la clé pauv cloche.
$ scp -P 666 -i mes_poemes.doc /home/toto/.ssh/id_rsa_plop toto@8.7.6.5:/home/toto/
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0755 for 'mes_poemes.doc' are too open. It is recommended that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: mes_poemes.doc gtoto@8.7.6.5's password:
Ici, le -i devrait être immédiatement suivi de /home/toto/.ssh/id_rsa_plop




