web-dev-qa-db-fra.com

Tunnel SSH d'hôte à hôte

Je veux créer un tunnel SSH complet entre deux serveurs Ubuntu 12.04, (j'ai découvert SSHuttle mais à cause d'un bug dans la gestion des descripteurs de fichiers, il va planter sous une charge élevée) très similaire à IPSEC mais parce que je n'en ai besoin que pour deux héberge la complexité de la création d'une configuration IPSEC à part entière semble être une exagération.

Ce que je veux réaliser, c'est que toutes les données allant entre server1 et server2 seront cryptées sans avoir besoin de créer des milliers de ports dynamiques SSH.

2
Ba7a7chy

Cette réponse appartient à brandonchecketts .

Supposons que vous avez deux hôtes nommés Host-A et Host-B. Maintenant, nous allons créer un tunnel SSH entre ces deux et nous assurer que le tunnel est toujours opérationnel.

La configuration doit être effectuée pour Host-A:

Ouvrez votre terminal, transformez-vous en root et collez le code un par un

useradd -d /home/tunnel tunnel
passwd tunnel 
su - tunnel    

la prochaine étape consiste à créer une clé SSH

Dans la pâte terminale comme

ssh-keygen

puis choisissez le choix par défaut pour toutes les invites et copiez la clé avec

cat /.ssh/id_rsa.pub

Maintenant, cette fois, nous devons configurer pour Host-B

Ouvrez votre terminal et exécutez ces commandes

useradd -d /home/tunnel tunnel
passwd tunnel 
su - tunnel

et dans le type de terminal comme

mkdir .ssh
vi .ssh/authorized_keys

Il ouvrira un fichier dans le terminal et collera la clé copiée ci-dessus à partir de Host-A.

Maintenant dans le type de terminal comme

vi /home/tunnel/check_ssh_tunnel.sh

et collez comme

createTunnel() {
    /usr/bin/ssh -f -N -L13306:hostb:3306 -L19922:hostb:22 tunnel@hostb
    if [[ $? -eq 0 ]]; then
        echo Tunnel to hostb created successfully
    else
        echo An error occurred creating a tunnel to hostb RC was $?
    fi
}
## Run the 'ls' command remotely.  If it returns non-zero, then create a new connection
/usr/bin/ssh -p 19922 tunnel@localhost ls
if [[ $? -ne 0 ]]; then
    echo Creating new tunnel connection
    createTunnel
fi

enregistrer et fermer et le rendre exécutable avec

chmod 700 /home/tunnel/check_ssh_tunnel.sh

puis exécutez le script, il démarrera un tunnel avec un PC distant.

Lisez ce lien ci-dessus, c'est incontournable.

2
rɑːdʒɑ