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
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
Editer le fichier /etc/ssh/sshd_config
et remplacer la ligne :
Port 22
par
Port 443
Pour le faire nous avons besoin d'un programme nommé connect pour passer le proxy :
Récuperer l'archive 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
On veut que machine-A puis se connecter vers machine-B
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.
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
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
Installer le paquetage sshpass
Pour se connecter en ssh :
sshpass -p '*********' ssh root@host
*** étant le mot de passe en clair.