web-dev-qa-db-fra.com

Comment puis-je vous connecter à un PC via un autre PC en utilisant ssh

J'ai trois ordinateurs.

PC1 et pc2 est sur un réseau local privé, où PC1 est connu de PC2 comme 192.168.0.2

PC2 et PC est sur un autre réseau local, où PC2 est connu de PC comme 192.168.123.101

Comment puis-je me connecter à PC1 à partir de PC avec ssh.

Y a-t-il quelque chose comme:

ssh [email protected] -via [email protected]
13
Stefan
ssh -o 'ProxyCommand ssh -W %h:%p [email protected]'

Ensuite, vous pouvez simplement courir ssh PC1.

Mieux utilisé à travers un alias de ~/.ssh/config:

Host PC1
HostName 192.168.0.2
User user
ProxyCommand ssh -W %h:%p [email protected]

Pour les anciennes versions d'OpenSSH qui n'ont pas le -W option (je pense que cela signifie ≤5,4), assurez-vous que NETCAT est disponible sur PC2 et utilisation

Host PC1
HostName 192.168.0.2
User user
ProxyCommand ssh [email protected] nc %h %p

Utiliser SSH Il y a une solution claire:

  1. sur votre machine locale configurez votre ~/.ssh/config tel qu'il a ce qui suit:

    Host WhatYouWillCallTheConnection
        hostname the.gateway.server.address.com
        user YourUsernameOnTheGateway
    
  2. Sur la passerelle et le serveur d'extrémité, vous souhaitez vous connecter, assurez-vous de disposer des clés publiques de votre client local situées dans le ~/.ssh/authorized_keys

  3. Sur la machine de passerelle, vous devez modifier le ~/.ssh/authorized_keys tel que au début de la ligne qui spécifie la clé publique de votre client, ajoutez la commande forcée comme suit:

    command="ssh -A [email protected]" ...yourPublicKey....
    

Le -A est de transmettre l'agent si vous n'aimez pas envoyer de mots de passe tout le temps ...

De cette façon, quand tu fais quelque chose comme ssh WhatYouWillCallTheConnection Il fonctionnera directement à travers la passerelle et vous connectera au serveur de l'autre côté de manière transparente.

4
Shamster

Le transfert de port pourrait être utile.
[.____] de PC1:

~# ssh -fN -L 22:PC3:7777 -l <user> PC2  

7777 peut être juste n'importe quel port (à condition que ce ne soit pas déjà utilisé). J'aime juste ce numéro, plus n'importe quel "commande", je peux gérer par +1 s (7778, 7779, etc., etc.).

Cela étant fait, vous aurez un tunnel "transparent" du port local de PC1 7777 au port 22 de PC3. Just problème:

~# ssh -l <user> -p 7777 localhost  

Et vous devriez être sur PC3.
[.____] Vous pouvez également utiliser -D pour transférer dynamiquement un port si vous voulez un proxy de chaussettes établi.

~# ssh -D <someport> -fN -L 22:PC3:7777 -l <user> PC2  

Acclamations!

2
wormintrude

La seule solution que je connaisse pour cela est la script SSH avec Biancier :

Biper permet d'ouvrir une coquille ou d'exécuter une commande sur un ordinateur distant via une connexion SSH. La principale caractéristique de Biper est sa capacité à traverser plusieurs ordinateurs intermédiaires avant de réaliser le travail.

Il y a quelque temps, j'ai trouvé cela README.SSHHOP sur le MIT Lincoln Laboratory Homepage, mais je n'ai pas pu trouver d'informations supplémentaires à ce sujet. Est-ce que quelqu'un en sache plus ?

0
echox