« Astuces ssh » : différence entre les versions

De WikiBR
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 4 : Ligne 4 :


==Mettre la clef sur le serveur cible :==
==Mettre la clef sur le serveur cible :==
$ ssh-copy-id -i ./ssh/id_dsa.pub serveur
ou bien ( en moins bien ) :
  $ ssh serveur "cat >> .ssh/authorized_keys" < ./ssh/id_dsa.pub
  $ ssh serveur "cat >> .ssh/authorized_keys" < ./ssh/id_dsa.pub


Ligne 26 : Ligne 28 :
  chown root:root ssh-aliases &&
  chown root:root ssh-aliases &&
  chmod 755 ssh-aliases &&
  chmod 755 ssh-aliases &&
  mv ssh-aliases /usr/bin
  mv ssh-aliases ~/bin # ou ailleurs dans votre path, si c'est votre machine.


enfin supposons que toutes les machines habituelles aient leur nom dans le fichier './machines' :
enfin supposons que toutes les machines habituelles aient leur nom dans le fichier './machines' :


  for namae in $(cat machines); do
  for namae in $(cat machines); do
     ln -s /usr/bin/{ssh-aliases,$namae}
     ln -s ~/bin/{ssh-aliases,$namae}
  done
  done



Version du 26 janvier 2009 à 14:26

Créer un couple de clefs :

$ ssh-keygen -t dsa

Utiliser un password pour crypter la clef est important...

Mettre la clef sur le serveur cible :

$ ssh-copy-id -i ./ssh/id_dsa.pub serveur

ou bien ( en moins bien ) :

$ ssh serveur "cat >> .ssh/authorized_keys" < ./ssh/id_dsa.pub

Pour ne pas avoir à décrypter la clef à chaque utilisation, mais tout en la gardant en sécurité :

Démarrer ssh-agent:

$ eval  $(ssh-agent)

Ajouter une clef :

$ ssh-add

Forwarder l'agent (ie ne pas avoir à mettre de clef sur B pour faire ssh B puis ssh C depuis B )  :

ForwardAgent yes

Dans les .ssh/config de tous les hosts qui servent de relai, à défaut, utiliser -A dans la ligne de commande de ssh.

Utiliser des pseudo alias :

Dans un fichier texte ssh-aliases

#!/bin/bash
ssh $(basename $0) "$@"

puis le rendre utilisable :

chown root:root ssh-aliases &&
chmod 755 ssh-aliases &&
mv ssh-aliases ~/bin # ou ailleurs dans votre path, si c'est votre machine.

enfin supposons que toutes les machines habituelles aient leur nom dans le fichier './machines' :

for namae in $(cat machines); do
    ln -s ~/bin/{ssh-aliases,$namae}
done


Maintenant il suffit de taper le nom de la machine pour avoir un shell dessus. Le principe est que le script écrit plus haut regarde comment il a été appelé et invoque ssh en fonction.