J'essaie de scp un fichier d'un serveur distant vers ma machine locale. Seul le port 80 est accessible.
J'ai essayé:
scp -p 80 [email protected]:/root/file.txt .
mais a obtenu cette erreur: cp: 80: No such file or directory
Comment spécifier le numéro de port dans une commande scp?
Réponses:
Contrairement à ssh, scp utilise le commutateur P majuscule pour définir le port au lieu du p minuscule:
Le commutateur p en minuscules est utilisé avec scp pour la conservation des temps et des modes.
Voici un extrait de la page de manuel de scp avec tous les détails concernant les deux commutateurs, ainsi qu'une explication de la raison pour laquelle le P majuscule a été choisi pour scp:
Mettez à jour et mettez de côté pour répondre à l'un des commentaires (fortement votés) :
En ce qui concerne le commentaire d'Abdull sur l'
scp
ordre d'option, ce qu'il suggère:..., intercalent les options et les paramètres.
getopt(1)
définit clairement que les paramètres doivent venir après les options et ne pas être entrecoupés avec elles:Étant donné que l'
-r
option de ligne de commande ne prend aucun autre argument,some_directory
est "le premier paramètre sans option qui n'est pas un argument d'option". Par conséquent, comme clairement indiqué dans lagetopt(1)
page de manuel, tous les arguments de ligne de commande suivants qui le suivent (c'est-à-dire-P 80 ...
) sont supposés être des non-options (et des arguments non-option).Ainsi, en effet, voici comment
getopt(1)
l'exemple présenté avec la fin des options et le début des paramètres est délimité par le texte suivant bing en gris:scp -P80 -r
some_directory -P 80 ...
Cela n'a rien à voir avec le
scp
comportement et tout à voir avec la façon dont les applications standard POSIX analysent les options de ligne de commande à l'aide de l'getopt(3)
ensemble des fonctions C.Pour plus de détails concernant la commande et le traitement en ligne de commande, veuillez lire la
getopt(1)
page de manuel en utilisant:la source
scp
demande l'ordre des options correct:scp -r some_directory -P 80 ...
ne fonctionne pas ----- maisscp -P 80 -r some_directory ...
fonctionne.-P
ordre des paramètres. Fondamentalement, le port doit passer avant l'hôte. Cela empêche à la fois l'ambiguïté et permet deux-P
paramètres si les deux hôtes sont distants.Un indice supplémentaire. Placez l'option '-P' après la commande scp, que la machine dans laquelle vous vous connectez soit la deuxième (alias destination). Exemple:
la source
Tu sais ce qui est plus cool que
-P
? rienSi vous utilisez ce serveur plusieurs fois, configurez / créez un
~/.ssh/config
fichier avec une entrée comme:ou
Ensuite, vous pouvez utiliser:
scp [email protected]:/root/file.txt .
ou
scp short:/root/file.txt .
Vous pouvez utiliser n'importe quoi sur la ligne "Host" avec ssh, scp, rsync, git et plus
Il existe de nombreuses options de configuration que vous pouvez utiliser dans les fichiers de configuration, voir:
man ssh_config
la source
scp -3
et vers des serveurs avec des écouteurs ssh sur différents ports.scp -3 -P 123 server1:/file -P 456 server2:/file
ou des alternatives similaires ne fonctionneraient pas, scp a supposé le même port sur les deux serveursJ'utilise différents ports, puis standard et copie des fichiers entre des fichiers comme celui-ci:
Ce n'est que pour une utilisation occasionnelle, s'il se répète en fonction d'un calendrier, vous devez utiliser rsync et cron pour le faire.
la source
pour utiliser un autre port sur la commande scp utiliser le capital P comme celui-ci
Ya Ali
la source
l'aide de scp nous indique que le port est spécifié par un P. majuscule
J'espère que cela t'aides.
la source
Copie du fichier sur l'hôte:
scp SourceFile remoteuser@remotehost:/directory/TargetFile
Copie du fichier depuis l'hôte:
scp user@host:/directory/SourceFile TargetFile
Copie récursive du répertoire à partir de l'hôte:
scp -r user@host:/directory/SourceFolder TargetFolder
REMARQUE : si l'hôte utilise un port autre que le port 22, vous pouvez le spécifier avec l'option -P:
scp -P 2222 user@host:/directory/SourceFile TargetFile
la source
Cela peut être obtenu en spécifiant le port via le
-P
commutateur:la source
si vous avez besoin de copier le fichier local sur le serveur (spécifiez le port)
la source
J'espère que cela aidera quelqu'un à la recherche d'une réponse parfaite
Copie d'un dossier ou d'un fichier à partir d'un serveur avec un port défini sur un autre serveur ou une machine locale
la source
Il existe de nombreuses réponses, mais vous devriez simplement être simple. Assurez-vous de savoir sur quel port SSH écoute et définissez-le. Voici ce que je viens d'utiliser pour reproduire votre problème.
scp -P 12222 file.7z [email protected]: / home / user / Downloads Cela a bien fonctionné.
la source