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
scp
orden 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
-r
opción de línea de comando no toma más argumentos,some_directory
es "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
scp
comportamiento 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
scp
exige el orden correcto de opciones:scp -r some_directory -P 80 ...
no funciona ----- peroscp -P 80 -r some_directory ...
funciona.-P
orden de los parámetros. Básicamente, el puerto tiene que ir antes que el host. Esto evita la ambigüedad y permite dos-P
pará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/config
archivo 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_config
fuente
scp -3
desde y hacia servidores con escuchas ssh en diferentes puertos.scp -3 -P 123 server1:/file -P 456 server2:/file
o 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/TargetFile
Copiando archivo del host:
scp user@host:/directory/SourceFile TargetFile
Copiando directorio recursivamente desde el host:
scp -r user@host:/directory/SourceFolder TargetFolder
NOTA : 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 TargetFile
fuente
Esto se puede lograr especificando el puerto a través del
-P
conmutador: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