GNU/Linux >> Tutoriels Linux >  >> Linux

Comment scp via une machine intermédiaire ?

Je suggérerais ce qui suit dans votre .ssh/config :

Host C
    User user
    ProxyCommand ssh -W %h:%p [email protected]

Je ne suis pas beaucoup plus sûr si l'hôte B n'est pas fiable et fonctionne pour scp et sftp.


Comme décrit dans cette réponse, vous pouvez utiliser le ProxyCommand directive pour avoir un ssh l'hôte vous renvoie vers un troisième hôte de manière transparente :

Supposons que vous ayez les trois hôtes suivants :

  • workstation.example.com - C'est la machine sur laquelle vous travaillez physiquement
  • proxy.example.com - Il s'agit de la machine par laquelle vous acheminez votre trafic SSH
  • endpoint.example.com - C'est là que vous voulez que le trafic aboutisse

En ~/.ssh/config le workstation , ajoutez ce qui suit :

Host endpoint
    User endpointUser # set this to the username on the endpoint host
    HostName endpoint.example.com
    ProxyCommand ssh [email protected] nc %h %p 2> /dev/null

Sur le proxy hôte, assurez-vous que nc (netcat) est installé.

Puis, sur workstation , vous pouvez ssh endpoint ou sftp endpoint et vous serez mandaté de manière transparente à la machine par le biais de votre hôte proxy. scp fonctionnera également.


C'est possible et relativement facile, même lorsque vous devez utiliser des certificats pour l'authentification (typique dans les environnements AWS).

La commande ci-dessous copiera les fichiers d'un remotePath sur server2 directement dans votre machine à localPath. En interne, la requête scp est proxy via server1.

scp -i user2-cert.pem -o ProxyCommand="ssh -i user1-cert.pem -W %h:%p [email protected]" [email protected]:/<remotePath> <localpath>

Si vous utilisez plutôt l'authentification par mot de passe, essayez avec

scp -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected]:/<remotePath> <localpath>

Si vous utilisez les mêmes informations d'identification utilisateur sur les deux serveurs :

scp -o ProxyCommand="ssh -W %h:%p [email protected]" [email protected]:/<remotePath> <localpath>

Linux
  1. Comment utiliser le tunneling SSH pour accéder aux serveurs restreints

  2. Ssh – Restreindre un utilisateur Ssh/scp/sftp à un répertoire ?

  3. Ssh – Comment éditer des fichiers à distance via Ssh ?

  4. Comment Scp Via Une Machine Intermédiaire ??

  5. Comment déterminer si je suis connecté via SSH ?

Comment surveiller une machine Linux via Nagios

Comment se connecter à votre serveur Web via SSH

Comment se connecter à votre serveur via SSH

Comment SSH au serveur via Linux

Comment ajouter une clé SSH au code VS et se connecter à un hôte

Comment désactiver la vérification de la clé d'hôte SSH sous Linux