Zdalnie skopiowałem plik na laptopa za pomocą:
scp someFile USER@192.168.178.32:/home/USER/put/it/some/where/oh/damn/you/here
Chcę mieć możliwość automatycznego uzupełniania ścieżki zdalnej, naciskając klawisz Tab.
bash
ssh
autocomplete
k0pernikus
źródło
źródło
rsync
, co moim zdaniem jest znacznie lepsze niżscp
zsh
.scp
, przynajmniej działa tutaj. Potrzebujesz klucza ssh już dodanego do agenta ssh.Odpowiedzi:
Upewnij się, że masz włączone fantazyjne autouzupełnianie. W wielu dystrybucjach oznacza to, że
~/.bashrc
musisz się powstrzymać. /etc/bash_completion
.Musisz skonfigurować uwierzytelnianie bez hasła, tzn. Z kluczem, który jest już załadowany
ssh-agent
.Nawiązanie połączenia SSH jest powolne, dzięki czemu można znacznie przyspieszyć ukończenie, ustanawiając połączenie raz na zawsze, a następnie korzystając z tego połączenia. Stosunkowo skomplikowanym sposobem jest otwarcie połączenia master SSH
ssh -N -M target-host
po skonfigurowaniu połączeń master-slave~/.ssh/config
; instrukcje zobacz Wiele sesji ssh w jednym poleceniu (potrzebujesz opcjiControlMaster
iControlPath
).Prostą metodą jest zamontowanie zdalnego systemu plików na SSHFS i użycie go
cp
z normalnym zakończeniem powłoki.źródło
/etc/bash_completion
źródle~/.bash_completion
. Chcę mieć możliwość korzystania z tej funkcji na zdalnym serwerze, na którym nie mogę pisać/etc/
i nie ma go/etc/bash_completion
(chociaż istnieje/etc/bash_completion.d/
. Czy istnieje wersja, którą można bezpiecznie uruchomić z mojego katalogu domowego? Jest co najmniej jedno odniesienie do ~ / .bash_completion, więc obawiam się, że brakuje mi czegoś więcej i może istnieć cykliczna pętla lub coś innego, co może powodować błędy.Wszystko, co musiałem zrobić, to dodać mój klucz publiczny do zdalnego komputera:
cat ~/.ssh/id_rsa.pub | ssh [email protected] "cat - >> ~/.ssh/authorized_keys"
A teraz
scp
uzupełnia tabulatory.Zajrzyj tutaj, jeśli musisz najpierw skonfigurować klucze.
źródło
ssh-copy-id
jest, a ponadto obsłuży uprawnienia do plików.Możesz przełączyć się na lftp zamiast używać scp. Daje przyjemny spójny interfejs do przesyłania plików przez ftp, sftp i ssh, w tym autouzupełniania, którego szukasz i więcej (tj. Symbole wieloznaczne).
otwiera połączenie przez ssh, tak jak robisz to z scp. Wiele maszyn obsługuje także sftp: //, co jest jeszcze przyjemniejsze z mojego doświadczenia.
źródło
Jak powiedział @Giles , upewnij się, że masz poprawnie skonfigurowane automatyczne uzupełnianie i masz klucz ssh na komputerze.
Dodanie tej konfiguracji do mojej
~/.ssh/config
zrobiło ogromną różnicę w szybkości.Spowoduje to utworzenie połączenia głównego dla każdego hosta.
Trwałość 10 sekund da ci trochę czasu na zobaczenie katalogu, zanim połączenie zostanie automatycznie zamknięte.
Bez trwałości będziesz musiał odtworzyć połączenie, co spowolni uzupełnianie kart.
Przykład
~$ scp mymachine:~/pa
PATKA~$ scp mymachine:~/path/to
PATKA~$ scp mymachine:~/path/to/file
PATKAźródło