Eu regularmente me pego querendo copiar um arquivo da sessão do terminal remoto para a minha máquina local. Normalmente, saio da sessão remota e chamo uma transferência scp do local para copiar o arquivo do remoto para o local. Mas isso parece um pouco longo. Gostaria de transferir o arquivo enquanto estiver conectado ao controle remoto por SSH para economizar tempo. Minha máquina local está conectada à Internet a partir de um intervalo de IP dinâmico, por isso nunca tenho certeza de como me conectar a ela remotamente. Mas certamente, como a sessão remota se origina do meu laptop, deve haver um atalho no scp para voltar ao meu laptop ... Certo?
~C
saída. Basta digitar<Enter>~C-R 12345:localhost:22<Enter>
e você terá seu túnel sem sair da sessão SSH já estabelecida.Tente o seguinte na linha de comando da máquina remota; talvez seja necessário ativar o encaminhamento de porta no seu roteador.
Origem: scp facilmente um arquivo de volta para o host do qual você está se conectando (commandlinefu.com)
fonte
${SSH_CLIENT%% *}
dependa o IP da sua máquina local. Portanto, o comando inteiro abre uma sessão scp da máquina remota para a sua máquina local para transferência de arquivos. Isso só pode ser feito se você puder fazer o SSH na sua máquina local a partir da máquina remota.export ME="${SSH_CLIENT%% *}"
no seu arquivo shell rc. Em seguida, você pode simplesmente usarscp <file> $ME:<local path>
Talvez zssh ?
Ele usa as veneráveis implementações rz, sz da transferência de arquivos zmodem.
fonte
Promovido esta pergunta, isso é algo que eu gostaria de fazer com facilidade também.
Aqui está a resposta relacionada: Como SCP de uma máquina remota para uma máquina local quando estou fora da minha rede doméstica?
fonte
Uma solução seria suspender a sessão ssh na máquina local, executar a cópia na máquina local e reiniciar a sessão ssh de onde você parou.
Por exemplo, suponha que eu esteja conectado ao myuser @ remote e deseje copiar o arquivo lol.txt no meu computador local. Primeiro, quero suspender o ssh na minha máquina local. Normalmente você usaria Ctrl- Zpara suspender, mas isso não funcionará no ssh porque será enviado para o shell remoto. Em vez disso, você deve usar a sequência de escape ssh Enter~. Então, para suspender ssh pressione Enter~ Ctrl- Z. Agora você pode executar comandos em sua máquina local e pode executar
user@localmachine:~$ scp user@remote:/path-to-file/lol.txt /dest-path/lol.txt
copiar o arquivo e retornar ao ssh exatamente onde você o deixou
user@localmachine:~$ fg
fonte
Se você deseja uma solução mais simples, basta abrir a conta do dropbox, vá para a máquina remota e faça o wget (versão modificada daqui ):
wget --no-check-certificate https://www.dropbox.com/s/2123jshf/ABC.pdf?dl=1 -O abc.pdf
fonte