Как лучше всего загружать файлы на локальный жесткий диск при входе в систему на другом компьютере с помощью ssh в bash. Я знаю sftp, но это не удобно, например. в нем отсутствует завершение имен каталогов табуляцией. Я использую Ubuntu 8.04.1. У меня нет общедоступного IP-адреса, и я не хочу настраивать динамическое решение Dynamic DNS.

Я не знаю.
Я бы $ scp host: локальное расположение файла
Насколько мне известно, не существует простого scp-on-steroids, который позволяет автозаполнение для удаленных структур папок. Если вы просто хотите смонтировать удаленную папку, взгляните на sshfs. Или просто попробуйте смонтировать удаленный каталог с помощью ssh: // ... в Nautilus.
Мне действительно нравится использовать клиент SCP из командной строки. :) Я не знаю, как это происходит, но мой SCP на Ubuntu (из openssh-client 1: 4.7p1-8ubuntu1.2) на самом деле выполняет табуляцию удаленных каталогов и файлов на хостах, где я обычно авторизуюсь через открытый ключ.
Я также использую Ubuntu 8.04.1, и если я наберу
$ scp [email protected]:.bashr<TAB>
Я действительно получаю завершение табуляции (т.е. bash отправляется на мой сервер и получает результаты завершения из файловой системы там). Затем
$ scp [email protected]:.bashrc .
копирует мой .bashrc с моего сервера в текущий каталог на моем локальном компьютере.
Если вы этого не получили, попробуйте sudo apt-get install bash-completion и убедитесь, что ваш .bashrc содержит следующие строки (у меня по умолчанию):
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
Он не тратит впустую ничего ценного для меня (например, время). И sshing на сервер и scping обратно на локальный компьютер не работает, если, как в случае задающего вопрос, ваш локальный компьютер не имеет доступного ssh-сервера.
ssh-xfer - это то, что вы ищете. После настройки вы можете ввести (в сеансе ssh на удаленном компьютере):
$ ssh-xfer foo.txt
и foo.txt волшебным образом появится на вашем локальном компьютере.
А как насчет РЫБЫ? *** Fi *** перевод через *** Sh *** ell - Вы можете использовать Midnight Commander на своей консоли:
$ sudo apt-get install mc
$ mc
Затем нажмите F9; Справа (для правой панели) -> Ссылка на оболочку Введите ссылку ssh удаленного хоста. В командной строке введите имя машины укажите:
user@host
Система запросит пароль (или автоматический вход, если для этого настроены ваши SSH-ключи)
Теперь вы можете просматривать удаленную файловую систему, выбирать и копировать (F5) по своему усмотрению.
У вас также есть завершение табуляции при локальном использовании scp. То, что вы делаете, немного бесполезно по сравнению с локальным scp [from-server] [to-local]. Оба способа работают и делают то же самое.