Question scp avec numéro de port spécifié


J'essaye de scp un dossier d'un serveur à distance à ma machine locale. Seul le port 80 est accessible.

J'ai essayé:

scp -p 80 username@www.myserver.com:/root/file.txt .

mais j'ai eu cette erreur: cp: 80: No such file or directory

Comment puis-je spécifier le numéro de port dans une commande scp?


579
2018-04-26 20:35


origine


Réponses:


Contrairement à ssh, scp utilise le commutateur P majuscule pour définir le port au lieu du p minuscule:

scp -P 80 ... # Use port 80 to bypass the firewall, instead of the scp default

Le commutateur p en minuscule est utilisé avec scp pour la préservation 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 la majuscule P a été choisie pour scp:

-P port Spécifie le port auquel se connecter sur l'hôte distant. Notez que cette option est écrite avec un 'P' majuscule, car -p est déjà   réservé pour préserver les temps et les modes du fichier dans rcp (1).

-p Conserve les temps de modification, les temps d'accès et les modes du fichier d'origine.


1048
2018-04-26 20:37



Un indice supplémentaire. Placez l'option '-P' après la commande scp, peu importe si la machine que vous utilisez est la seconde (ou destination). Exemple:

scp -P 2222 /absolute_path/source-folder/some-file user@example.com:/absolute_path/destination-folder

42
2017-10-21 09:21



Vous savez ce qui est plus cool que -P? rien

Si vous utilisez ce serveur plus de quelques fois, configurez / créez un ~/.ssh/config fichier avec une entrée comme:

Host www.myserver.com
    Port 80

ou

Host myserver myserver80 short any.name.u.want yes_anything well-within-reason
    HostName www.myserver.com
    Port 80
    User username

Ensuite, vous pouvez utiliser:

scp username@www.myserver.com:/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 plusieurs options de configuration que vous pouvez utiliser dans les fichiers de configuration, voir:

man ssh_config


29
2018-04-27 00:14



J'utilise différents ports puis standard et copiez les fichiers entre les fichiers comme ceci:

scp -P 1234 user@[ip address or host name]:/var/www/mywebsite/dumps/* /var/www/myNewPathOnCurrentLocalMachine

C'est seulement pour une utilisation occasionnelle, si elle se répète en fonction d'un emploi du temps, vous devriez utiliser rsync et cron job pour le faire.


23
2017-08-19 09:57



L'aide de scp nous indique que le port est spécifié par la majuscule P.

~$ scp
usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 ... [[user@]host2:]file2

J'espère que cela t'aides.


4
2017-07-31 16:59



Copier le fichier sur l'hôte: scp SourceFile remoteuser@remotehost:/directory/TargetFile

Copier le fichier depuis l'hôte: scp user@host:/directory/SourceFile TargetFile

Copier le répertoire de manière récursive depuis 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


2
2017-07-25 21:42



Cela peut être obtenu en spécifiant le port via le -P commutateur:

scp -i ~/keys/yourkey -P2222 file ubuntu@host:/directory/

0
2017-11-14 09:53