Pregunta scp con número de puerto especificado


Estoy intentando capturar un archivo desde un servidor remoto a mi máquina local. Solo se puede acceder al puerto 80.

Lo intenté:

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

pero obtuve este error: cp: 80: No such file or directory

¿Cómo especifico el número de puerto en un comando scp?


579
2018-04-26 20:35


origen


Respuestas:


A diferencia de ssh, scp usa el interruptor P mayúscula para establecer el puerto en lugar de la p minúscula:

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

El interruptor p minúsculo se usa con scp para la conservación de tiempos y modos.

Aquí hay un extracto de la página man de scp con todos los detalles sobre los dos interruptores, así como una explicación de por qué se eligió P mayúscula para scp:

-P puerto Especifica el puerto para conectarse en el host remoto. Tenga en cuenta que esta opción está escrita con una "P" mayúscula, porque -p ya está   reservado para preservar los tiempos y modos del archivo en rcp (1).

-p Conserva los tiempos de modificación, los tiempos de acceso y los modos del archivo original.


1048
2018-04-26 20:37



Una sugerencia adicional. Coloque la opción '-P' después del comando scp, sin importar si la máquina en la que está ingresando es la segunda (también conocido como destino). Ejemplo:

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

42
2017-10-21 09:21



¿Sabes qué hay más genial que -P? nada

Si usa este servidor más de unas pocas veces, configure / cree un ~/.ssh/config archivo con una entrada como:

Host www.myserver.com
    Port 80

o

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

Entonces puedes usar:

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

o

scp short:/root/file.txt .

Puede usar cualquier cosa en la línea "Host" con ssh, scp, rsync, git y más

Hay MUCHAS opciones de configuración que puede usar en los archivos de configuración, consulte:

man ssh_config


29
2018-04-27 00:14



Estoy usando diferentes puertos, luego estándar y copio archivos entre archivos como este:

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

Esto es solo para uso ocasional; si se repite en función de un cronograma, debe usar el trabajo rsync y cron para hacerlo.


23
2017-08-19 09:57



La ayuda de scp nos dice que el puerto está especificado por P. mayúscula

~$ 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

Espero que esto ayude.


4
2017-07-31 16:59



Copiando archivo al host: scp SourceFile remoteuser@remotehost:/directory/TargetFile

Copiando archivo desde el host: scp user@host:/directory/SourceFile TargetFile

Copia de directorio recursivamente desde el host: scp -r user@host:/directory/SourceFolder TargetFolder

NOTA: Si el host utiliza un puerto que no sea el puerto 22, puede especificarlo con la opción -P: scp -P 2222 user@host:/directory/SourceFile TargetFile


2
2017-07-25 21:42



Esto se puede lograr especificando el puerto a través del -P cambiar:

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

0
2017-11-14 09:53