scp protegeu o arquivo da máquina remota para a máquina local através do terminal O

4

Estou tentando isso:

ssh -t -e none host "sudo cat /location/to/some/file.txt" | xclip -selection c

Com a opção -t , devo solicitar a senha para sudo . Mas eu não sou. Sem isso, bem permissão negada.

O que estou recebendo para o sudo prompt, com a opção -t, é uma nova linha, na qual tentei inserir a senha sudo, mas nada acontece e depois de um tempo ela diz Connection to host closed .

Existe alguma outra maneira (usando apenas terminal) para copiar um arquivo protegido de uma máquina remota para local.

EDITAR:

@ Félicien está certo. O ssh é mascarado por causa do pipe | . O prompt de solicitação de senha também passará pelo pipe e alterará a entrada de xclip

    
por kenzotenma 27.02.2018 / 11:51

2 respostas

3

Embora a resposta do @Félicien forneça o motivo do problema, encontrei uma solução alternativa para resolvê-lo usando o parâmetro intermediário arquivo e o comando tee :

ssh -t -e none -i /path/to/id_rsa user@host "sudo cat /location/to/some/file.txt" | \
    tee /tmp/xclip.txt && \
    sed '1d' /tmp/xclip.txt | \
    xclip -selection c
  • A saída do comando ssh será canalizada para o comando tee que gravará em um novo arquivo em /tmp .
  • Em seguida, o comando sed '1d' exibirá o conteúdo do novo arquivo sem a primeira linha que é [sudo] password for <user>: e, finalmente, essa saída poderá ser canalizada para xclip .
  • Você pode criar um comando personalizado adicionando uma função em .bashrc para tornar as coisas mais simples no futuro.
por pa4080 27.02.2018 / 12:54
3

Do que testei, a opção -t está funcionando, mas está mascarada por causa do cano | no comando. O terminal está esperando por você para colocar a senha, mas você não pode vê-lo.

Você pode colocar sua senha quando o terminal parecer "esperar", mas o risco é que o prompt de senha também passe pelo canal e mude a entrada de xclip

    
por Félicien 27.02.2018 / 12:12