Como fazer upload de arquivo local para o servidor através do terminal Linux

47

Estou tentando fazer upload de arquivos locais para o servidor usando Putty ou SSH, mas não consigo fazer o upload lá.

Existe algum método direto para fazer upload de arquivos do local para o servidor do terminal Linux sem usar FTP, etc?

Sanjeev Kumar Goswami
fonte
SFTP é o que você está procurando.
deseja transferir meu arquivo local para o servidor usando o Terminal Linux. Suponha que acessássemos o servidor por putty ou ssh, mas não pudéssemos transferir o arquivo pelo mesmo terminal.

Respostas:

64

Certo. Use scp(cópia segura) assim:

scp [source file] [username]@[destination server]:.

Claro que substituir o entre colchetes [source file], [username]e [destination server]para corresponder às suas configurações locais. Portanto, se o arquivo era cool_stuff.txte seu nome de usuário no servidor remoto é sanjeeve o servidor de destino é example.com, o comando seria:

scp cool_stuff.txt [email protected]:.

E a fonte também pode ser remota, para que você possa fazer o contrário do exemplo acima:

scp [email protected]:cool_stuff.txt .

Esse comando copiaria o arquivo remoto cool_stuff.txtpara qualquer diretório local em que você esteja. E se você estiver fazendo isso com vários arquivos, use um curinga ( *) como faria em um cpcomando normal .

Além disso, o .just indica o caminho do diretório imediato; como aquele em que você está no momento em que executa o comando ou o caminho imediato que o usuário remoto possui no servidor de destino. Mas você também pode especificar um caminho como /this/path/right/hereno exemplo local para remoto:

scp cool_stuff.txt [email protected]:/this/path/right/here

Ou o exemplo remoto para local aqui:

scp [email protected]:cool_stuff.txt /this/path/right/here

Agora, se o servidor remoto não permitir SSH e apenas SFTP, o SFTP é o caminho a seguir. Mas scpé muito útil quando você deseja lançar um arquivo e não executar todo o processo SFTP manualmente a partir da linha de comando.

JakeGould
fonte
13

Quando o login no servidor remoto é realizado através da chave ssh , podemos usar o -isinalizador abaixo para passar nossa chave para o servidor:

scp -i /path/to/.ssh/id_rsa path/to/file/myFiles.gz myServer.com:/folder/on/server

-i identity_file
Seleciona o arquivo do qual a identidade (chave privada) para autenticação de chave pública é lida.
Esta opção é passada diretamente para ssh (1).

zx8754
fonte
13

Para adicionar a resposta de Jake , você pode especificar um local - em vez de apenas .- para copiar, adicionando o caminho no final da URL como:

scp /path/to/file username@servername/ip:/destination/folder/
CBinyenya
fonte
11
Para sua informação, o espaço entre o host remoto e o caminho é um erro; portanto, você precisa escrever isso sem espaço! (editar esta resposta não é possível no momento)
SliQ