J'ai souvent besoin d'un fichier provenant d'un serveur lorsque je suis sur mon ordinateur portable. Mais si je ne sais pas où se trouve ce fichier, je dois ssh
accéder au serveur, regarder autour de moi exit
, puis scp server:file .
. Si je travaille avec mon bureau et mon serveur, qui ont tous deux des adresses IP statiques, je peux simplement SCP le fichier en sens inverse ( scp desktop:~ file
), mais je ne peux pas le faire pour mon ordinateur portable. Existe-t-il un bon moyen de SCP un fichier en arrière via une connexion SSH? Pour que l'ordinateur auquel je me connecte avec SSH envoie un fichier en arrière au client?
17
Réponses:
Ce serait beaucoup plus facile avec SFTP, qui est une extension de SSH qui prend en charge des opérations de fichiers plus complexes que SCP. Pratiquement toutes les distributions Unix et Linux modernes le prennent en charge. Pour l'utiliser, il suffit d'exécuter cette commande pour se connecter au serveur:
Ensuite, vous pouvez utiliser les commandes
ls
etcd
pour parcourir et trouver le fichier que vous recherchez. Une fois que vous l'avez trouvé, utilisez laget
commande pour le télécharger. Par exemple, pour téléchargerfile.txt
dans votre répertoire de travail actuel sur le serveur vers votre répertoire de travail actuel sur votre machine locale, exécutez simplement:Pour télécharger
/home/pavpanchekha/textfiles/file.txt
sur le serveur~/textfiles/
sur votre ordinateur local, exécutez plutôt:Inversement, vous pouvez également télécharger des fichiers de cette manière. Pour télécharger
file.txt
depuis votre répertoire de travail actuel local vers le répertoire de travail actuel du serveur, tapez:Vous pouvez également utiliser des chemins complets pour chacun comme vous le pouvez avec
get
:Pour une liste complète des commandes SFTP disponibles, exécutez simplement
help
à l'sftp>
invite.la source
SSH_CLIENT
variable d'environnement contient l'adresse IP de l'hôte qui se connecte entre autres informations. Vous pouvez l'utiliser pour créer un alias de shell afin de retourner facilement SFTP à l'hôte d'origine. Ajoutez simplement cette ligne~/.bashrc
sur le serveur:alias sftpback="sftp $(echo $SSH_CLIENT | awk '{print $1}')"
Déconnectez-vous puis reconnectez-vous de SSH pour que la modification prenne effet, ou exécutez-la comme s'il s'agissait d'une commande pour qu'elle prenne effet immédiatement. À partir de là, vous pouvez simplement réexécutersftpback
SFTP vers le client à partir duquel vous vous connectez, quel que soit celui-ci.Le gestionnaire de fichiers de la console Midnight Commander (mc) possède un système VFS qui permet la connexion SFTP / la gestion de fichiers vers des serveurs distants. Il s'exécute également dans Cygwin sur Windows. L'interface par défaut affiche deux panneaux indépendants; nous pourrions ouvrir le répertoire distant SFTP dans l'un d'eux et transférer facilement des fichiers vers / depuis l'autre panneau. Comprend un éditeur / visualiseur de fichiers (mcedit) avec mise en évidence de la syntaxe.
la source