回答:
派手なオートコンプリートをオンにしていることを確認してください。多くのディストリビューションでは、これは~/.bashrc
を含む必要があることを意味します. /etc/bash_completion
。
パスワードなしの認証を設定する必要があります。つまり、に既に読み込まれているキーを使用しssh-agent
ます。
SSH接続の確立は遅いため、一度だけすべての接続を確立し、その後その接続を使用することにより、完了を大幅に高速化できます。これを行う比較的複雑な方法は、でssh -N -M target-host
マスター/スレーブ接続を設定した後にマスターSSH接続を開くことです~/.ssh/config
。手順については、1つのコマンドで複数のsshセッションを参照してください(ControlMaster
とControlPath
オプションが必要です)。
簡単な方法は、リモートファイルシステムをSSHFS経由でマウントして使用することですcp
通常のシェル補完ですることです。
mkdir ~/remote
sshfs USER@192.168.178.32:/home/USER ~/remote
cp -p someFile ~/remote/put/it/some/where/oh/damn/you/here
/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
目的です。さらに、ファイルのアクセス許可を処理します。
@Gilesが言ったように、マシンのsshキーが正しく設定されていることを確認してください。
この構成を追加する~/.ssh/config
と、速度に大きな違いが生じました。
Host *
ControlMaster auto
ControlPath ~/.ssh/master-socket/%r@%h:%p
ControlPersist 10s
これにより、各ホストのマスター接続が作成されます。
10秒持続すると、接続が自動的に閉じられる前にディレクトリを確認する時間が与えられます。
永続化しないと、接続を再作成する必要があり、タブの完了が遅くなります。
~$ scp mymachine:~/pa
タブ
path/ palace/ pandas/ porn/
~$ scp mymachine:~/path/to
タブ
~$ scp mymachine:~/path/to/file
タブ
rsync
私の意見でよりはるかに優れている、scp