Aqui está o meu caso de uso:
- Costumo conectar-me a outros computadores através do SSH para trabalhar, e muitas vezes preciso copiar e colar documentos / texto do servidor para editores em execução local para escrever exemplos e compartilhar texto.
- Freqüentemente, se o texto for pequeno o suficiente, copiarei a saída do meu programa de terminal (gnome-terminal no momento) e colo-o.
- No entanto, quando se trata de documentos inteiros, minhas opções são bastante limitadas. Posso copiar o documento pedaço por pedaço ou
scp
na máquina local.
Existe uma maneira de usar um programa como o xclip
que me permitirá copiar remotamente stdin
para a área de transferência do servidor X local? Algo para o efeito de:
cat myconffile.conf | sed {...} | copy-over-ssh-to-local-clipboard
seria fantástico. Existe algo para tornar isso possível?
Você não precisa de nada de especial; desde que
xclip
funcionastdin
, apenasPor que precisaria ser modificado
sed
?ssh
é transparente aos dados quando não usado como terminal e é comumente usado em tubulações comofonte
stdin
antes de copiá-lo para a área de transferência, gostaria dessa opção.ssh
sessão existente (não seria muito seguro se você pudesse). Você pode configurar ossh
ControlMaster
material para multiplexar conexões adicionais por uma já existente, mas isso não é realmente algo para iniciantes e você continuará fazendo o mesmo depois, alternando para outro terminal local e executando o comando acima (que não abre um novo janela do terminal).Veja como você faria isso no OSX a partir da sua máquina local
fonte
se a sua máquina local estiver executando o Windows (7+), você pode usá-lo apenas no CommandLine:
fonte
~ / .ssh / config:
/ etc / ssh / sshd_config:
bater:
fonte
Muito parecido com as soluções @ d-raev e @ william-casarin, no entanto, é diferente, então estou compartilhando o que funcionou para mim.
O comando
Explicação
Isso é usar
ssh
para criar um túnel seguro, acesseuser
@host
ouip
, então executarcat
para imprimir o conteúdo de<myconffile.conf
questdout
, em seguida, tubulação que para o comandoxclip -sel clip
em sua máquina local, o que coloca o conteúdo<myconffile.conf
na área de transferência em sua máquina local.Exemplo de uso no mundo real
Eu uso essa estrutura de comando para tarefas como colar chaves ssh no github (permitindo uma simples seleção de ctrl-V ou colar depois de executar o comando) no Bash no Ubuntu 16.04 e 18.04. Confira
man ssh
,man cat
eman xclip
para o comportamento e opção detalhes.fonte
xclip
não será executado porque não há X.Eu tenho um problema semelhante com a área de transferência do LUbuntu
lxterminal
(testados vários terminais) em umassh
sessão. Se a área de transferência tiver mais de 100 bytes, a sessão expirará e falhará.Se eu conectar via ssh a quase qualquer servidor CentOS 5.xe depois conectar ao servidor de destino, a pasta da área de transferência funcionará sem problemas para qualquer tamanho de dados razoável.
fonte
Copiando de um servidor sem cabeçalho para a área de transferência local, de dentro da sua sessão SSH habitual:
Instale
ncat
na sua máquina local e remota. (Na sua máquina remota, você também pode usar comnc
ou simplestelnet
, mas na máquina local, precisamos das opções para executar comandos (-c
/-e
) que não estão disponíveis nasnc
distribuições usuais, como Debian e Ubuntu.)Na sua máquina local, configure um servidor atendendo na interface local que copiará o conteúdo que entra na porta 10009 para a área de transferência do X:
Ou use a versão abreviada equivalente:
SSH na máquina remota de forma que um túnel reverso seja estabelecido da porta 10008 da máquina remota para a porta 10009 na sua máquina local (onde o servidor está escutando). Você pode usar essa sessão SSH para o seu trabalho normal.
Quando você deseja copiar o conteúdo de um arquivo da máquina remota para a área de transferência local, execute no shell SSH:
E, claro, isso é melhor quando compactado como um atalho ou script de shell. Poderíamos chamá-lo
rclip
de "[copiar para] área de transferência remota" em analogia ao conhecidoxclip
.Vantagens
Não é necessário abrir outra sessão SSH para a máquina remota.
Não é necessário
xclip
na máquina remota; portanto, funciona se você não pode instalá-lo ou não pode usá-lo porque é um servidor sem cabeça sem o X.Segurança
Fazemos
ncat -l localhost 10009
pelo servidor, o que significa que ele escuta apenas na interface de rede com olocalhost
endereço IP. Essa interface de loop local permite apenas conexões de sua própria máquina (incluindo, nesse caso, aquelas com túnel reverso via SSH). Portanto, mesmo se você não estiver protegido por um firewall, sua porta 10009 não estará exposta a ninguém na Internet.Fonte
Adaptado da lista dergachev / ssh-forward-clipboard.md para trabalhar com o Linux. Essa essência também contém instruções sobre como tornar o túnel reverso SSH um padrão.
fonte
https://secure.wikimedia.org/wikipedia/en/wiki/Base64
Você pode converter os dados da área de transferência com o texto Base64 em ASCII. Em seguida, você pode fazer isso através de uma conexão SSH já existente.
fonte