Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
informatique:linux:ssh [2008/03/03 15:27] benoit |
informatique:linux:ssh [2018/09/06 19:10] (Version actuelle) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | |||
+ | |||
+ | |||
===== Création d'un tunnel SSH ===== | ===== Création d'un tunnel SSH ===== | ||
- | Ci-dessous on demande à 192.168.0.2 d'ouvrir un tunnel vers 192.168.0.1 sur le port 80 | ||
- | ssh -N -g -L 6666:192.168.0.1:80 user@192.168.0.2 | ||
- | On peut ensuite se connecter sur le port 80 de 192.168.0.1 par l'adresse 192.168.0.2 sur le port 6666 | + | ==== 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é ===== | ===== Connexion SSH avec authentification par clé ===== | ||
Ligne 24: | Ligne 73: | ||
== Copie de la clé publique de la machine-A vers la machine-B == | == Copie de la clé publique de la machine-A vers la machine-B == | ||
- | scp id_dsa.pub machine-B: | ||
- | Sur la machine-B concaténer la clé public dans le fichier authorized_keys | + | Depuis la machine-A : |
- | cat id_dsa.pub > $HOME/.ssh/authorized_keys | + | cat ${HOME}/.ssh/id_dsa.pub | ssh root@machine-B 'cat >> .ssh/authorized_keys2' |
- | La connexion sans mot de passe est desormais possible de machine-A vers machine-B | + | 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 | ||
Ligne 43: | Ligne 94: | ||
remote-host$ ssh-keygen -i -f ~/.ssh/user.pub > ~/.ssh/user2.pub | remote-host$ ssh-keygen -i -f ~/.ssh/user.pub > ~/.ssh/user2.pub | ||
remote-host$ cat ~/.ssh/user2.pub >> ~/.ssh/authorized_keys | 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. | ||
+ | |||
Ligne 48: | Ligne 108: | ||
- | ==== Putty ==== | ||
- | === Proxy SSH === | ||
- | Contourner l'utilisation du proxy d'entreprise | ||
- | == Prérequis == | ||
- | * Avoir un serveur linux avec un demon SSH ecoutant sur l'un des port : ''443'', ''80'' ou ''8080'' | ||
- | * Client putty | ||
- | == Connexion SSH == | ||
- | Lancer putty et configurer ainsi : | ||
- | **Dans ''Category **Session''** | ||
- | * Dans **Host Name** indiquer l'adresse du serveur distant | ||
- | * Dans **Port** indiquer le port 443, 80 ou 8080 | ||
- | **Dans ''Category Proxy''** (le configuration ci-dessous dépend de la configuration du proxy de l'entreprise) | ||
- | * Dans **Proxy type** selectionner HTTP | ||
- | * Dans **Proxy hostname** indiquer l'adresse du proxy de l'entreprise | ||
- | * Dans **Port** indiquer le port du proxy de l'entreprise | ||
- | * Dans **Username** et **Password** indiquer le login et mot de passe à utiliser pour la connexion au proxy de l'entreprise |