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

두 번째 줄 끝에 "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.


두 번째 옵션:

공개/개인 키를 사용하면 scp자동으로 사용됩니다. 단점은 scp매번 로그인해야 한다는 점이며, 이는 설정된 연결을 재사용하는 것보다 느릴 수 있습니다.

관련 정보