Estou tentando scp um arquivo de um servidor remoto para minha máquina local. Somente a porta 80 está acessível.
Eu tentei:
scp -p 80 [email protected]:/root/file.txt .
mas recebi este erro: cp: 80: No such file or directory
Como especifico o número da porta em um comando scp?
Respostas:
Diferente do ssh, o scp usa o switch P maiúsculo para definir a porta em vez do p minúsculo:
A opção p minúscula é usada com scp para a preservação de tempos e modos.
Aqui está um trecho da página de manual do scp com todos os detalhes relativos às duas opções, bem como uma explicação de por que P maiúsculo foi escolhido para o scp:
Atualize e deixe de lado para abordar um dos comentários (altamente votados) :
Com relação ao comentário de Abdull sobre a
scp
ordem das opções, o que ele sugere:..., intercala opções e parâmetros.
getopt(1)
define claramente que os parâmetros devem vir após as opções e não devem ser intercalados com eles:Como a
-r
opção de linha de comando não requer mais argumentos,some_directory
é "o primeiro parâmetro que não é uma opção que não é um argumento de opção". Portanto, conforme claramente explicitado nagetopt(1)
página de manual, todos os argumentos de linha de comando subsequentes que se seguem (isto é,-P 80 ...
) são assumidos como não opcionais (e não opcionais).Então, com efeito, é assim que
getopt(1)
o exemplo é apresentado com o final das opções e o início dos parâmetros demarcados pelo texto subsequente bing em cinza:scp -P80 -r
some_directory -P 80 ...
Isso não tem nada a ver com
scp
comportamento e tudo a ver com como os aplicativos padrão POSIX analisam as opções de linha de comando usando ogetopt(3)
conjunto de funções C.Para obter mais detalhes com relação ao pedido e processamento da linha de comando, leia a página de
getopt(1)
manual usando:fonte
scp
exige ordem correta das opções:scp -r some_directory -P 80 ...
não funciona ----- masscp -P 80 -r some_directory ...
funciona.-P
ordem dos parâmetros. Basicamente, a porta precisa ir antes do host. Isso evita a ambiguidade e permite dois-P
parâmetros se os dois hosts forem remotos.Uma dica adicional. Coloque a opção '-P' após o comando scp, não importando se a máquina em que você está inserindo o equipamento é a segunda (também conhecida como destino). Exemplo:
fonte
Você sabe o que é mais legal do que
-P
? nadaSe você usar este servidor mais de algumas vezes, configure / crie um
~/.ssh/config
arquivo com uma entrada como:ou
Então você pode usar:
scp [email protected]:/root/file.txt .
ou
scp short:/root/file.txt .
Você pode usar qualquer coisa na linha "Host" com ssh, scp, rsync, git e mais
Existem MUITAS opções de configuração que você pode usar nos arquivos de configuração, consulte:
man ssh_config
fonte
scp -3
e para servidores com ouvintes ssh em portas diferentes.scp -3 -P 123 server1:/file -P 456 server2:/file
ou alternativas semelhantes que não trabalho, scp assumiu a mesma porta em ambos os servidoresEstou usando portas diferentes do padrão e copio arquivos entre arquivos como este:
Isso é apenas para uso ocasional; se ele se repete com base em uma programação, você deve usar o trabalho rsync e cron para fazer isso.
fonte
para usar outra porta no comando scp use capital P como este
ya ali
fonte
A ajuda do scp informa que a porta é especificada por P. maiúsculo
Espero que isto ajude.
fonte
Copiando arquivo para o host:
scp SourceFile remoteuser@remotehost:/directory/TargetFile
Copiando arquivo do host:
scp user@host:/directory/SourceFile TargetFile
Copiando o diretório recursivamente do host:
scp -r user@host:/directory/SourceFolder TargetFolder
NOTA : Se o host estiver usando uma porta diferente da porta 22, você poderá especificá-la com a opção -P:
scp -P 2222 user@host:/directory/SourceFile TargetFile
fonte
Isso pode ser obtido especificando a porta através do
-P
switch:fonte
se você precisar copiar o arquivo local para o servidor (especifique a porta)
fonte
Espero que isso ajude alguém que procura uma resposta perfeita
Copiando uma pasta ou arquivo de um servidor com uma porta definida para outro servidor ou máquina local
fonte
Existem muitas respostas, mas você deve ser capaz de simplificar. Certifique-se de saber em que porta o SSH está escutando e defina-o. Aqui está o que eu acabei de usar para replicar seu problema.
scp -P 12222 file.7z [email protected]: / home / user / Downloads Funcionou bem.
fonte