Connexion maître
C'est plus facile si vous planifiez à l'avance.
Ouvrez une connexion principale la première fois. Pour les connexions suivantes, acheminez les connexions esclaves via la connexion maître existante. Dans votre ~/.ssh/config
, configurez le partage de connexion pour qu'il se produise automatiquement:
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
Si vous démarrez une session ssh avec la même connexion (utilisateur, port, machine) qu'une connexion existante, la seconde session sera tunnelée sur la première. L'établissement de la deuxième connexion ne nécessite aucune nouvelle authentification et est très rapide.
Ainsi, pendant que vous avez une connexion active, vous pouvez rapidement:
Expéditeur
Sur une connexion existante, vous pouvez établir un tunnel ssh inversé. Sur la ligne de commande ssh, créez un transfert à distance en passant, -R 22042:localhost:22
où 22042 est un numéro choisi au hasard, différent de tout autre numéro de port de la machine distante. Ensuite, ssh -p 22042 localhost
sur la machine distante, vous êtes connecté à la machine source. vous pouvez utiliser scp -P 22042 foo localhost:
pour copier des fichiers.
Vous pouvez automatiser cela davantage avec RemoteForward 22042 localhost:22
. Le problème, c'est que si vous vous connectez au même ordinateur avec plusieurs instances de ssh, ou si quelqu'un d'autre utilise le port, vous n'obtenez pas le transfert.
Si vous n'avez pas activé le transfert à distance depuis le début, vous pouvez le faire sur une session ssh existante. Type Enter ~C
Enter -R 22042:localhost:22
Enter. Voir «Caractères d'échappement» dans le manuel pour plus d'informations.
Il existe également des informations intéressantes dans ce fil de défaillance de serveur .
Copier coller
Si le fichier est petit, vous pouvez le taper et le copier-coller à partir de la sortie du terminal. Si le fichier contient des caractères non imprimables, utilisez un codage tel que base64 .
remote.example.net $ base64 <monfichier
(copie le résultat)
local.example.net $ base64 -d> myfile
(collez le contenu du presse-papiers)
Ctrl +D
De manière plus pratique, si le transfert X est actif, copiez le fichier sur la machine distante et collez-le localement. Vous pouvez diriger des données vers et depuis xclip
ou xsel
. Si vous souhaitez conserver le nom de fichier et les métadonnées, copiez-collez une archive.
remote.example.net$ tar -czf - myfile | xsel
local.example.net$ xsel | tar -xzf -
scp file.foo user@myclient.com:file.foo
: P