Créer une configuration propre à chaque session SSH est très utile dans le cas où les paramètres de connexions sont très hétérogènes.
Par exemple:
1 - Connexion SSH sur le serveur A avec le user USERA sur le port 2000
2 - Connexion SSH sur le serveur B avec le user USERA sur le port 22
3 - Connexion SSH sur le serveur C avec le user USERB sur le port 443 via un proxy
etc etc...
Ca fait beaucoup de paramètres à mémoriser pour chaque connexion.
Il existe donc un fichier config se trouvant dans le répertoire utilisateur ~/.ssh/ (le créer s'il n'existe pas) et dans lequel il est possible d'y paramétrer toutes les connexions SSH.
voir man 5 ssh_config pour plus de détail.
Détail de la config pour la connexion 1 (en rouge, les paramètres à modifier):
Host serveurA
Hostname mon.serveur.mon.domaine.com (ou l'ip 10.10.10.10)
User USERA
Port 2000 TCPKeepAlive yes
Bien respecter l'indentation
La variable Host accepte n'importe quelle valeur. C'est un identifiant pour le serveur.
La variable Hostname correspond au serveur distant sur lequel on se connecte. On peut y renseigner soit un nom de domaine soit une adresse IP.
La variable User correspond au user avec lequel on se connecte.
La variable Port correspond au port sur lequel on se connecte.
En fonction de cette configuration, la connexion SSH au serveur A s'effectue de cette manière:
$ ssh serveurA
On précise donc uniquement le nom renseigné dans la variable Host du fichier ~/.ssh/config
Détail de la config pour la connexion 3 (en rouge, les paramètres à modifier):
Host serveurC
Hostname mon.serveur.mon.domaine.com (ou l'ip 12.12.12.12)
User USERB
Port 443 TCPKeepAlive yes
ProxyCommand corkscrew proxy.domaine.com 8080 %h %p
La variable ProxyCommand contient la ligne de commande à exécuter pour se connecter via le proxy indiqué en rouge. La commande utilise le programme corkscrew. Penser à l'installer s'il ne l'est pas déjà.
$ apt-get install corkscrew
Pour se connecter au serveur C:
$ ssh serveurC
C'est quand même vachement simple ;)