次のコマンドを使用して、ファイルをラップトップにリモートでコピーします。
scp someFile [email protected]:/home/USER/put/it/some/where/oh/damn/you/here
タブをクリックしてリモートパスをオートコンプリートできるようにしたいです。
答え1
素晴らしいオートコンプリート機能がオンになっていることを確認してください。多くのディストリビューションでこれは~/.bashrc
。. /etc/bash_completion
を使用してもパスワードのない認証を設定する必要がありますssh-agent
。
SSH接続設定は遅いため、接続を一度設定して後で使用すると、はるかに迅速に完了できます。比較的複雑な方法は、ssh -N -M target-host
マスター - スレーブ接続を確立した後にマスターSSH接続を開くことです~/.ssh/config
。単一コマンドで複数のSSHセッション指示(あなたの必要性ControlMaster
とControlPath
オプション)を入手してください。
簡単な方法は、リモートファイルシステムを次の場所にマウントすることです。SSHFScp
そして一般的なシェル完成と組み合わせて使用されます。
mkdir ~/remote
sshfs [email protected]:/home/USER ~/remote
cp -p someFile ~/remote/put/it/some/where/oh/damn/you/here
答え2
私がしなければならないのは、私の公開鍵をリモートシステムに追加することだけです。
cat ~/.ssh/id_rsa.pub | ssh [email protected] "cat - >> ~/.ssh/authorized_keys"
これでテーブルの作成がscp
完了しました。
答え3
@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
商標
答え4
scpを使用する代わりにlftpに切り替えることができます。これは、あなたが探しているオートコンプリート機能(ワイルドカードなど)を含む、ftp、sftp、およびsshを介したファイル転送のための優れた一貫したインターフェースを提供します。
lftpfish://user@machine
上記でscpで行ったように、sshを介して接続を開きます。多くのコンピュータではsftp://もサポートしていますが、私の経験ではこれが優れています。