===== Création d'un tunnel SSH ===== ==== Ouverture port "Local" ==== Ci-dessous on alloue le port **6666** à notre poste pour pouvoir se connecter sur le port **80** de la machine distante **192.168.0.1** : ssh -g -L 6666:192.168.0.1:80 user@192.168.0.2 Depuis notre poste si l'on tape **http://localhost:6666** dans un navigateur on accèdera en réalité à **http://192.168.0.1:80** ==== Ouverture port "Remote" ==== Il est possible de faire l'inverse, ci-dessous on ouvre le port **6666** sur la machine distante **192.168.0.1** pour qu'elle puisse se connecter sur notre poste en SSH : ssh -g -R 6666:localhost:22 user@192.168.0.1 L'utilisateur distant peut se connecter en SSH sur notre machine par la commande ''ssh -p 6666 localhost'' La commande ci-dessous assigne le port 6666 sur la machine distante 192.168.0.1 pour se connecter en SSH sur la machine client (127.0.0.1) ssh root@192.168.0.1 -R 6666:127.0.0.1:22 ===== Changer le port d'écoute de SSH ===== Editer le fichier ''/etc/ssh/sshd_config'' et remplacer la ligne : Port 22 par Port 443 ===== Se connecter sur un serveur via un proxy ===== Pour le faire nous avons besoin d'un programme nommé **connect** pour passer le proxy : Récuperer l'archive {{informatique:linux:connect.zip}} La déposer sur votre poste linux puis décompresser l'archive : unzip connect.zip Compiler le programme : gcc connect.c -o connect Puis déposer le binaire dans **/usr/bin** mv connect /usr/bin Pour se connecter via le proxy la commande sera par exemple la suivante : ssh -o ProxyCommand="connect -H proxy.domaine.com:8080 %h %p" user@externSSH.domain.com Pour configurer l'utilisation permanente du proxy ajouter par exemple la ligne ci-dessous dans le fichier **/etc/ssh/ssh_config** : ProxyCommand connect -H proxy.domaine.com:8080 %h %p ===== Connexion SSH avec authentification par clé ===== ==== Sous Linux ==== On veut que machine-A puis se connecter vers machine-B == Creation d'une clé privée et public sur machine-A == ssh-keygen -t dsa Resultat attendu Generating public/private dsa key pair. Enter file in which to save the key (/root/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_dsa. Your public key has been saved in /root/.ssh/id_dsa.pub. == Copie de la clé publique de la machine-A vers la machine-B == Depuis la machine-A : cat ${HOME}/.ssh/id_dsa.pub | ssh root@machine-B 'cat >> .ssh/authorized_keys2' ou avec création du répertoire ${HOME}/.ssh sur le serveur distant s'il n'existe pas : cat ${HOME}/.ssh/id_dsa.pub | ssh root@machine-B 'mkdir .ssh ; cat >> .ssh/authorized_keys2' La connexion sans mot de passe est désormais possible de machine-A vers machine-B ==== Sous Putty ==== Executer puttygen.exe et generer une paire de clé SSH2 public/private. Sauver sous user.pub and user.ppk. Copier la clé publique dans ~/.ssh/user.pub sur la machine distante. Sur la machine distante, convertir la clé publique au format OpenSSH puis ajouter la clé dans authorized_keys. remote-host$ ssh-keygen -i -f ~/.ssh/user.pub > ~/.ssh/user2.pub remote-host$ cat ~/.ssh/user2.pub >> ~/.ssh/authorized_keys ===== Se connecter en SSH sans interaction pour le mot de passe ===== Installer le paquetage ''sshpass'' Pour se connecter en ssh : sshpass -p '*********' ssh root@host ******* étant le mot de passe en clair.