Saya menyalin file ke laptop saya menggunakan:
scp someFile USER@192.168.178.32:/home/USER/put/it/some/where/oh/damn/you/here
Saya ingin dapat melengkapi jalur jauh secara otomatis dengan menekan tab.
bash
ssh
autocomplete
k0pernikus
sumber
sumber
rsync
, yang menurut saya jauh lebih unggul daripadascp
zsh
.scp
juga, setidaknya itu berfungsi di sini. Anda memerlukan kunci ssh yang sudah ditambahkan ke agen ssh.Jawaban:
Pastikan Anda telah mengaktifkan pelengkapan otomatis mewah. Pada banyak distribusi, ini berarti
~/.bashrc
kebutuhan Anda mengandung. /etc/bash_completion
.Anda harus mengatur otentikasi tanpa kata sandi, yaitu dengan kunci yang sudah dimuat
ssh-agent
.Membuat koneksi SSH lambat, sehingga Anda dapat mempercepat penyelesaian dengan membuat koneksi sekali dan untuk semua dan menggunakan koneksi itu sesudahnya. Cara yang relatif rumit untuk melakukannya adalah dengan membuka koneksi SSH master dengan
ssh -N -M target-host
setelah mengatur koneksi master-slave di~/.ssh/config
; lihat beberapa sesi ssh dalam satu perintah untuk instruksi (Anda memerlukanControlMaster
danControlPath
opsi).Metode sederhana adalah dengan memasang sistem file jarak jauh melalui SSHFS dan digunakan
cp
dengan penyelesaian shell normal.sumber
/etc/bash_completion
sumber~/.bash_completion
. Saya ingin dapat memiliki fitur ini pada server jauh di mana saya tidak dapat menulis/etc/
dan tidak ada/etc/bash_completion
(meskipun ada/etc/bash_completion.d/
. Apakah ada versi yang aman untuk dijalankan dari direktori home saya? Setidaknya ada satu referensi ke ~ / .bash_completion jadi saya khawatir masih ada lagi yang saya lewatkan dan mungkin ada siklusYang perlu saya lakukan adalah menambahkan kunci publik ke mesin jarak jauh:
cat ~/.ssh/id_rsa.pub | ssh [email protected] "cat - >> ~/.ssh/authorized_keys"
Dan sekarang
scp
tab-selesai.Lihat di sini jika Anda perlu mengatur kunci Anda terlebih dahulu.
sumber
ssh-copy-id
, ditambah lagi akan menangani izin file untuk Anda.Anda bisa beralih ke lftp daripada menggunakan scp. Ini memberi Anda antarmuka konsisten yang bagus untuk transfer file melalui ftp, sftp dan ssh termasuk autocomplete yang Anda cari dan banyak lagi (yaitu wildcard).
membuka koneksi melalui ssh seperti yang Anda lakukan di atas dengan scp. Banyak mesin mendukung sftp: // juga yang bahkan lebih bagus dalam pengalaman saya.
sumber
Seperti @Giles telah mengatakan , pastikan Anda memiliki setup auto complete benar harus memiliki kunci Anda ssh pada mesin.
Menambahkan konfigurasi ini ke saya
~/.ssh/config
membuat perbedaan besar dalam kecepatan.Ini akan membuat koneksi master untuk setiap host.
10-an yang bertahan akan memberi Anda waktu untuk melihat direktori sebelum koneksi ditutup secara otomatis.
Tanpa persisten, Anda harus membuat ulang koneksi dan itu akan memperlambat penyelesaian tab Anda.
Contoh
~$ scp mymachine:~/pa
TAB~$ scp mymachine:~/path/to
TAB~$ scp mymachine:~/path/to/file
TABsumber