Secure shell

De bricosoft
Aller à la navigation Aller à la recherche
Fichier:Openssh.gif
Puffy le Diodon

ssh, Secure shell ou coquillage sécurisé est un protocole de communication beaucoup plus mieux que telnet.

Authentification SSH par clés

<google uid="C01" position="right"></google>
Erreur dans le widget Twitter Search: unable to write file /home/gbp4dt5/zones/bricosoft.com/www/extensions/Widgets/compiled_templates/wrt6937b9aed5c441_54668130

Sur votre terminal, générez la paire de clé privée-publique.

Soit pour l'utilisateur :

$ ssh-keygen

Soit plus général :

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

avec ssh-copy-id

La bonne pratique est d'utiliser ssh-copy-id qui installe votre clé publique à la fin du fichier ~/.ssh/authorized_keys de la machine distante :

Par défaut avec la clé publique ~/.ssh/id_dsa.pub :

$ ssh-copy-id toto@serveur.zz

Mais il est conseillé d'en avoir une différente par serveur distant (ici ~/.ssh/serveur_toto.pub) :

$ ssh-copy-id -i ~/.ssh/serveur_toto.pub toto@serveur.zz

L'argument i pointe vers le fichier de la clé publique.

Pour un port différent :

ssh-copy-id -i ~/.ssh/serveur_toto.pub "-p 6666 toto@serveur.zz"

Exemple de sortie :

$ ssh-copy-id -i ~/.ssh/serveur_toto.pub "-p 6666 toto@serveur.zz"
 toto@serveur.zz's password: 
 Now try logging into the machine, with "ssh '-p 6666 toto@serveur.zz'", and check in:

  ~/.ssh/authorized_keys

 to make sure we haven't added extra keys that you weren't expecting.
$ ssh '-p 6666 toto@serveur.zz'
Linux serveur.zz 2.6.27-plop-2777 #14 SMP Sun Jan 17 19:09:24 CET 2010 i686

To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/

2 packages can be updated.
1 update is a security update.

No mail.
Last login: Sun Oct 14 16:26:26 2012 from plop
toto@serveur.zz:~$ logout
Connection to toto@serveur.zz closed.


à 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 le.

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

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

Fichier:Gnome-fs-ssh.png

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!

Fichier:Suicide.gif

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

Liens