Estoy tratando de scp un archivo de un servidor remoto a mi máquina local. Solo el puerto 80 es accesible.
Lo intenté:
scp -p 80 [email protected]:/root/file.txt .
pero tengo este error: cp: 80: No such file or directory
¿Cómo especifico el número de puerto en un comando scp?

Respuestas:
A diferencia de ssh, scp usa el interruptor P mayúscula para configurar el puerto en lugar de la p minúscula:
El interruptor p minúscula se usa con scp para la preservación de tiempos y modos.
Aquí hay un extracto de la página de manual de scp con todos los detalles relacionados con los dos interruptores, así como una explicación de por qué se eligió P mayúscula para scp:
Actualice y aparte para abordar uno de los comentarios (muy votados) :
Con respecto al comentario de Abdull sobre el
scporden de opciones, lo que sugiere:..., intercala opciones y parámetros.
getopt(1)define claramente que los parámetros deben venir después de las opciones y no estar intercalados con ellas:Dado que la
-ropción de línea de comando no toma más argumentos,some_directoryes "el primer parámetro sin opción que no es un argumento de opción". Por lo tanto, como se explica claramente en lagetopt(1)página del manual,-P 80 ...se supone que todos los argumentos de la línea de comandos que siguen (es decir, ) no son opciones (y no son opciones).Entonces, en efecto, así es como se
getopt(1)ve el ejemplo presentado con el final de las opciones y el comienzo de los parámetros delimitados por el texto siguiente bing en gris:scp -P80 -r
some_directory -P 80 ...Esto no tiene nada que ver con el
scpcomportamiento y todo con la forma en que las aplicaciones estándar POSIX analizan las opciones de la línea de comandos utilizando elgetopt(3)conjunto de funciones de C.Para obtener más detalles sobre el pedido y el procesamiento de la línea de comandos, lea la página de
getopt(1)manual usando:fuente
scpexige el orden correcto de opciones:scp -r some_directory -P 80 ...no funciona ----- peroscp -P 80 -r some_directory ...funciona.-Porden de los parámetros. Básicamente, el puerto tiene que ir antes que el host. Esto evita la ambigüedad y permite dos-Pparámetros si ambos hosts son remotos.Una pista 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 conocida como destino). Ejemplo:
fuente
¿Sabes qué es más genial que
-P? nadaSi usa este servidor más de unas pocas veces, configure / cree un
~/.ssh/configarchivo con una entrada como:o
Entonces puedes usar:
scp [email protected]:/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_configfuente
scp -3desde y hacia servidores con escuchas ssh en diferentes puertos.scp -3 -P 123 server1:/file -P 456 server2:/fileo alternativas similares no funcionarían, scp asumió el mismo puerto en ambos servidoresEstoy usando diferentes puertos, luego estándar y copio archivos entre archivos como este:
Esto es solo para uso ocasional, si se repite en base a una programación, debe usar rsync y cron para hacerlo.
fuente
para usar otro puerto en el comando scp use P mayúscula
ya ali
fuente
la ayuda de scp nos dice que el puerto se especifica con mayúscula
Espero que esto ayude.
fuente
Copiando archivo al host:
scp SourceFile remoteuser@remotehost:/directory/TargetFileCopiando archivo del host:
scp user@host:/directory/SourceFile TargetFileCopiando directorio recursivamente desde el host:
scp -r user@host:/directory/SourceFolder TargetFolderNOTA : Si el host está usando un puerto diferente al puerto 22, puede especificarlo con la opción -P:
scp -P 2222 user@host:/directory/SourceFile TargetFilefuente
Esto se puede lograr especificando el puerto a través del
-Pconmutador:fuente
si necesita copiar el archivo local al servidor (especifique el puerto)
fuente
Espero que esto ayude a alguien que busca una respuesta perfecta
Copiar una carpeta o archivo de un servidor con un puerto definido a otro servidor o máquina local
fuente
Hay muchas respuestas, pero deberías poder mantenerlo simple. Asegúrese de saber en qué puerto está escuchando SSH y defínalo. Esto es lo que acabo de usar para replicar su problema.
scp -P 12222 file.7z [email protected]: / home / user / Downloads Funcionó bien.
fuente