SCPリモートファイルにタップオートコンプリートを提供できますか?

SCPリモートファイルにタップオートコンプリートを提供できますか?

ホストA /ユーザーaとホストB /ユーザーbが与えられ、AからBにsshが実行されますa@A$ ssh b@B。 Bにというファイルがあるとしましょうhello.txt。私たちが知っているように、Bにログインしてファイルを見つけたら、タブを使用してファイル名を自動入力できます。

a@A$ ssh b@B
b@B$ ls h
  hello.txt

2行目の最後に「tab」と入力しました。

これでAにログインし、hello.txtscpを使用してBからAにコピーしようとしていますが、ファイル名全体を覚えておらず、ファイルが「h」で始まることだけを覚えています。私がしたい

a@A$ scp b@B:h

次に、「tab」を押して、上記の例のように、Bから「h」で始まるファイルのリストを見てください。可能ですか?

編集する:

pLumoが提案した答えに従って試したことは次のとおりです。

    $ ssh b@B
    Last login: xxx
    b@B:~$ ls
    my_file.dat
    b@B:~$ exit
    logout
    Shared connection to B closed.
    $ cat ~/.ssh/config
      Host B

          Hostname B.xxxx.xx

          User b


          ControlMaster auto    
           ControlPath ~/.ssh/control:%h:%p:%r

    $ scp b@B:my_file.dat .
    my_file.dat                                                                                                                                   100%    4     0.0KB/s   00:00  
    $ssh -fN b@B  
    $ scp b@B:my_ 

where at the end of the last line I pressed TAB, but nothing happens. 

ベストアンサー1

scpタブ補完は、次のいずれかの状況に該当する場合にうまく機能します。


最初のオプション:

接続を再利用するには、次の項目に追加してください~/.ssh/config

Host B
    User b
    ControlMaster auto
    ControlPath ~/.ssh/control:%h:%p:%r

タブの完成が正しく機能するには、接続が開いている必要があります。まだ開いていない場合は、バックグラウンドで起動できます。

ssh -fN B

これは合格かもしれませんJumpHost


2番目のオプション:

公開/秘密鍵を使用するとscp自動的に使用されます。欠点はscp、毎回ログインする必要があることです。これは、確立された接続を再利用するよりも遅くなる可能性があります。

おすすめ記事