Защищенный scp файл с удаленного компьютера на локальный компьютер через терминал

Итак, я пытаюсь это:

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

С опцией -t, я должен получить запрос пароля для sudo. Но я не. Без этого в разрешении отказано.

То, что я получаю для приглашения sudo, с опцией -t, - это новая строка, где я попытался ввести пароль sudo, но ничего не происходит, и через некоторое время он выдает сообщение Connection to host closed.

Есть ли другой способ (с использованием только терминала) копировать защищенный файл с удаленного компьютера на локальный.

РЕДАКТИРОВАТЬ:

@ Фелисьен прав. ssh замаскирован из-за трубы |. Запрос пароля также пройдет через канал и изменит ввод xclip

.
4
задан 27 February 2018 в 15:57

2 ответа

В то время как ответ @Félicien обеспечивает причину проблемы, я нашел обходное решение, как решить его при помощи промежуточного временного файла и команды 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
  • Вывод ssh команда будет передана по каналу к команде tee это запишет это в новый файл в /tmp.
  • Затем команда sed '1d' произведет содержание нового файла без первой строки, которая является [sudo] password for <user>: и наконец этот вывод плохо быть переданным по каналу к xclip.
  • Можно создать пользовательскую команду путем включения функции Ваш .bashrc сделать вещи более простыми в будущем.
3
ответ дан 1 December 2019 в 09:20

Из того, что я протестировал, -t опция работает, но маскируется из-за канала | в команде. Терминал ожидает Вас для помещения пароля, но Вы не видите его.

Можно поместить пароль, когда терминал, кажется, "ожидает", но риск состоит в том, что подсказка выяснения пароля также пройдет канал и изменит вход xclip

3
ответ дан 1 December 2019 в 09:20

Другие вопросы по тегам:

Похожие вопросы: