Как просмотреть прогресс с помощью sshpass и scp в linux?

В моем терминале Linux я использую эту команду

sshpass -p "pass" scp -r me8@host.ca:/cmshome/me/file /home/me/Desktop 

для загрузки файла с паролем в нем. Без sshpass я вижу прогресс загрузки, но с ним он просто пуст, пока он не закончится, и я не вижу его.

Есть ли способ увидеть это с помощью sshpass?

  • Передача файлов кому-либо через sftp
  • Копирование файла с использованием scp в несуществующий локальный каталог - вводящее в заблуждение сообщение об ошибке
  • sshpass с SSH работает, но sshpass с SCP не
  • не удалось выполнить несколько команд на нескольких Linux-машинах?
  • scp (v4) копирование с удаленного на несколько локальных имен файлов
  • SSH на удаленную машину с использованием другого локального идентификатора
  • Ограничить максимальное количество одновременных процессов scp, запущенных на хосте
  • Передача файлов через хост-хост
  • One Solution collect form web for “Как просмотреть прогресс с помощью sshpass и scp в linux?”

    Я думаю, что то, что вы просите, нелегко, возможно, даже невозможно с базовыми сценариями bash.

    Поэтому следующее не отвечает на ваш вопрос, но предоставляет другой подход к вашей проблеме.

    Вместо использования sshpass вы можете использовать команду plain scp с аутентификацией публики без пароля. См. [1], если вы не знаете, что это такое.

    Если вы собираетесь использовать scp в сценариях для локального использования , это значит, что ИМО – путь:

    • генерировать публикацию без пароля
    • используйте ssh-copy-id для добавления вашего открытого ключа на сервер

    Этого достаточно, чтобы иметь возможность запускать вашу команду без каких-либо подсказок:

     scp -r me8@host.ca:/cmshome/me/file /home/me/Desktop 

    Для сценариев, которые вы хотите распространять , sshpass с четким паролем, безусловно, не очень хорошая идея, вы должны хотя бы использовать флаг s-ssh-s и предоставить пользователю пароль в качестве переменной среды для лучшей безопасности.

    В этом случае подход publickey немного менее удобен, но это все еще возможно. Если вы не можете позволить себе попросить пользователя сценария создать открытый ключ, вы можете создать открытый ключ «на лету», скопировать его на сервер и выполнить scp без каких-либо подсказок:

      #!/bin/bash KEY="$HOME/.ssh/id_rsa_example" if [ ! -e "$KEY" ]; then ssh-keygen -t rsa -N "" -f "$KEY" sshpass -e ssh-copy-id -i "${KEY}.pub" me8@host.ca fi scp -r me8@host.ca:/cmshome/me/file /home/me/Desktop 

    Наконец, еще есть возможность использовать rsync чтобы сделать индикатор выполнения:

     $ rsync -P --rsh="sshpass -p $PASSWORD ssh -l me8" host.ca:/cmshome/me/file /home/me/Desktop 

    [1] https://help.ubuntu.com/community/SSH/OpenSSH/Keys

    Interesting Posts

    Разветвление безопасности использования этой строки в visudo: yourUSERname ALL = (otherUSERaccount) NOPASSWD: ALL

    Как играть в поток RTSP под Linux для камеры BOSCH AutoDome Junior HD IVA?

    Как черная дыра на внешнем адресе на сервере ретрансляции exim без перезаписи?

    Поиск эффективного способа отображения PDF-файлов

    Как настроить XFCE для обработки быстрых клавиш \ hotkeys на key-release \ вверх, а не нажатия клавиш

    Выполняется ли задание, запланированное в crontab, даже когда я выхожу из системы?

    Принуждение Linux-сервера NFS к повторному подключению к серверу после отключения NFS

    Подключенное Android-устройство – отключает сеть?

    Как создать каталог bin пользователя в gentoo

    Как избежать «нервной блокировки»?

    очистить все переменные без закрытия терминала

    Редактирование удаленных файлов в Git repo

    Пользовательские столбцы в Thunar

    Процесс загрузки Unix / Linux

    не использовать при сохранении в Emacs 24 без make-local-hook

    Linux и Unix - лучшая ОС в мире.