Я удаленно скопировал файл на свой ноутбук, используя:
scp someFile USER@192.168.178.32:/home/USER/put/it/some/where/oh/damn/you/here
Я хочу иметь возможность автозаполнения удаленного пути, нажав вкладку.
bash
ssh
autocomplete
k0pernikus
источник
источник
rsync
, что, на мой взгляд, намного превосходитscp
zsh
.scp
также, по крайней мере, здесь работает. Вам нужен ssh-ключ, уже добавленный в ssh-agent.Ответы:
Убедитесь, что вы включили модное автозаполнение. Во многих дистрибутивах это означает, что вам
~/.bashrc
нужно содержать. /etc/bash_completion
.Вам необходимо настроить аутентификацию без пароля, т.е. с ключом, который уже загружен
ssh-agent
.Установка SSH-соединения происходит медленно, поэтому вы можете значительно ускорить завершение, установив соединение раз и навсегда и использовав его впоследствии. Относительно сложный способ сделать это состоит в том, чтобы открыть главное соединение SSH с
ssh -N -M target-host
после установки главного / подчиненного соединения в~/.ssh/config
; см Несколько сессий SSH в одной команде инструкции (вам нужноControlMaster
иControlPath
опция).Простой способ - смонтировать удаленную файловую систему через SSHFS и использовать
cp
с обычным завершением оболочки.источник
/etc/bash_completion
источнике~/.bash_completion
. Я хочу иметь возможность использовать эту функцию на удаленном сервере, на который я не могу писать,/etc/
а его нет/etc/bash_completion
(хотя есть/etc/bash_completion.d/
. Есть ли версия, которую можно было бы безопасно запускать из моего домашнего каталога? Есть хотя бы одна ссылка на ~ / .bash_completion, так что, боюсь, я пропускаю больше, и может быть циклический цикл или что-то еще, что может вызвать ошибки.Все, что мне нужно было сделать, это добавить свой открытый ключ на удаленный компьютер:
cat ~/.ssh/id_rsa.pub | ssh USER@192.168.178.32 "cat - >> ~/.ssh/authorized_keys"
А теперь
scp
вкладка завершена.Посмотрите здесь, если вам нужно сначала настроить ключи.
источник
ssh-copy-id
, для чего, плюс он будет обрабатывать права доступа к файлам для вас.Вы можете переключиться на lftp вместо использования scp. Это дает вам хороший согласованный интерфейс для передачи файлов через ftp, sftp и ssh, включая автозаполнение, которое вы ищете, и многое другое (например, подстановочные знаки).
открывает соединение через ssh, как вы делали выше с помощью scp. Многие машины также поддерживают sftp: //, что еще лучше в моем опыте.
источник
Как сказал @Giles , убедитесь, что вы правильно настроили автозаполнение, чтобы на вашем компьютере был ключ ssh.
Добавление этой конфигурации к моему
~/.ssh/config
огромному различию в скорости.Это создаст главное соединение для каждого хоста.
Постоянные 10 секунд дадут вам некоторое время для просмотра каталога, прежде чем соединение будет автоматически закрыто.
Без сохранения вам придется воссоздать соединение, и это замедлит завершение вашей вкладки.
пример
~$ scp mymachine:~/pa
TAB~$ scp mymachine:~/path/to
TAB~$ scp mymachine:~/path/to/file
TABисточник