호스트 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.txt
scp를 사용하여 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
매번 로그인해야 한다는 점이며, 이는 설정된 연결을 재사용하는 것보다 느릴 수 있습니다.