Como transferir arquivos por ssh enquanto já estiver ssh'd no servidor

12

Eu transfiro arquivos usando este comando

scp <localfile> user@host:<destination>

O comando acima só funciona quando não estou ssh'd no servidor.

Como transfiro arquivos locais para a máquina host quando já estou com o SSH conectado ??

Eu ssh usando ssh user@hostname

Onipresente
fonte
2
Qual SO? Abra outro terminal e use o comando scp
Impulss 08/03
1
é centOS. É o que tenho feito até agora. Eu só estava esperando algo mais conveniente.
Onipresente

Respostas:

5

Boa pergunta. scpnovamente, mas o caminho oposto. Eu fiz e aqui está:

chris@local ~$ ls hos*
hosts
chris@local ~$ ssh remote
Last login: Fri Mar  8 15:52:25 2013 from local
chris@remote ~$ scp chris@local:hos* .
chris@local's password: 
hosts                                              100% 1850     1.8KB/s   00:00    
chris@remote ~$ ls hos*
hosts
chris@remote ~$ 

editado para adicionar: conforme indicado nos comentários, isso requer que o computador remoto possa acessar o computador local. E o sshd ou (openssh-server) precisa estar instalado e em execução na máquina local.

Chris K
fonte
2
Isso supõe que a máquina local possa ser acessada pela remota e isso nem sempre é verdade.
laurent
No entanto, se for verdade, funcionará bem.
Davisales 9/13
3

Seria bom saber o que você está executando na máquina host. Se você estiver usando Linux,

scp user@host:/path/myfile .

Deveria trabalhar.

Josh
fonte
user @ host é a máquina remota do que entendi na pergunta, portanto, este comando não copiará arquivos da máquina local para a remota, mas do remoto para o local, se não estiver com SSH no host e copiará do remoto para si mesmo, se SSHed.
laurent
Eu acho que há alguma ambiguidade na questão. Para mim, user@hostparece se referir ao computador que você não está controlando no momento. Portanto, quando o OP não está conectado ao computador remoto, então user@hosté o computador remoto. Quando o OP está conectado ao computador remoto, então user@hosté o computador local. Se minhas suposições estão corretas, essa resposta faz sentido.
Davisales
Foi exatamente assim que interpretei a pergunta, daviewales. Além disso, você está correto, user @ host representaria qualquer estação de trabalho da qual você não esteja trabalhando atualmente, na minha opinião. Pensei em deixar isso mais claro na minha resposta, mas achei que isso estaria implícito.
9133 Josh
De qualquer forma, mesmo que o usuário @ host represente a máquina local quando o usuário estiver conectado à máquina remota (improvável que o OP tenha dito que deseja transferir arquivos locais para a máquina host), isso funcionará apenas se a máquina local estiver acessível a partir do controle remoto ativado (geralmente se estiverem na mesma LAN) e não em um cenário em que a máquina remota esteja na Internet e a máquina local não possua um IP fixo.
laurent
1

Se você tiver um caminho de volta à sua máquina local (sua máquina local pode ser acessada pela remota - geralmente quando as duas máquinas estão na mesma LAN), o uso de scp na máquina remota deve funcionar ( scp local:/path-to-file .).

Se a sua máquina local não puder ser acessada a partir da remota (geralmente verdadeira se o seu controle remoto for um VPS na Internet e a sua máquina local tiver um IP dinâmico), a melhor maneira é abrir um novo terminal na máquina local e copiar o arquivo.

Outra maneira, mais complicada e certamente não necessária apenas para copiar arquivos, seria criar uma VPN entre as máquinas (ou redes) para que ambas as máquinas estivessem acessíveis uma da outra e você pudesse usar o scp de uma máquina ou da outra.

Laurent
fonte
0

enquanto estiver conectado ao sistema remoto (mais fácil colocar apenas o CD no local do arquivo) sudo scp local_do_arquivo / nome_do_arquivo usuário @ host: local_do_arquivo

enquanto desconectado do sistema remoto sudo scp authoried_user @ hostname: file_location / file_name new_location_on_local_machine

NOTA: lembre-se, enquanto estiver desconectado de sistemas remotos, se for um novo terminal, a primeira senha será sudo password, a segunda senha será a senha de usuário autorizada. se você já fez o sudo anteriormente nesse terminal específico, é apenas a senha do usuário autorizado que você precisa. cuidado com isso, torna complicado.

obalolu
fonte