scp를 사용할 때 원격 경로에 자동 완성을 활성화하는 방법은 무엇입니까? someFile USER@192.168.178.32:/home/USER/put/it/some/where/oh/damn/you/here 탭을 눌러 원격 경로를 자동 완성

다음을 사용하여 파일을 랩톱에 원격으로 복사했습니다.

scp someFile USER@192.168.178.32:/home/USER/put/it/some/where/oh/damn/you/here

탭을 눌러 원격 경로를 자동 완성 할 수 있기를 원합니다.



답변

멋진 자동 완성 기능을 설정했는지 확인하십시오. 많은 배포판에서 이것은 ~/.bashrc포함해야 함을 의미 합니다 . /etc/bash_completion.

비밀번호가없는 인증을 설정해야합니다 (예 : 이미로드 된 키 사용) ssh-agent.

SSH 연결 설정 속도가 느리므로 연결을 한 번에 설정 한 후 그 연결을 사용하여 완료 속도를 상당히 높일 수 있습니다. 이를 수행하는 비교적 복잡한 방법은 ssh -N -M target-host마스터 슬레이브 연결을 설정 한 후 마스터 SSH 연결을 여는 것 입니다 ~/.ssh/config. 지시 사항 은 단일 명령에서 여러 ssh 세션을 참조하십시오 ( ControlMasterControlPath옵션 필요 ).

간단한 방법은 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


답변

공개 키를 원격 컴퓨터에 추가하기 만하면됩니다.

cat ~/.ssh/id_rsa.pub | ssh USER@192.168.178.32 "cat - >> ~/.ssh/authorized_keys"

그리고 이제 scp탭 완성.

키를 먼저 설정해야하는 경우 여기를 확인하십시오.


답변

scp를 사용하는 대신 lftp로 전환 할 수 있습니다. 그것은 당신이 찾고있는 자동 완성 등을 포함하여 ftp, sftp 및 ssh를 통한 파일 전송을위한 훌륭한 일관된 인터페이스를 제공합니다 (예 : 와일드 카드).

lftp fish : // user @ machine

scp로 위와 같이 ssh를 통해 연결을 엽니 다. 많은 컴퓨터가 sftp : //도 지원하므로 내 경험이 훨씬 좋습니다.


답변

@Giles가 말했듯 이 자동 완성을 올바르게 설정했는지 확인하십시오. 시스템에 ssh 키가 있어야합니다.

이 구성을 추가 ~/.ssh/config하면 속도가 크게 달라집니다.

Host *
 ControlMaster auto
 ControlPath ~/.ssh/master-socket/%r@%h:%p
 ControlPersist 10s

각 호스트에 대한 마스터 연결이 생성됩니다.

10s 지속은 연결이 자동으로 닫히기 전에 디렉토리를 볼 수있는 시간을 제공합니다.

지속성이 없으면 연결을 다시 작성해야하며 탭 완성 속도가 느려집니다.

~$ scp mymachine:~/pa

path/ palace/ pandas/ porn/

~$ scp mymachine:~/path/to

~$ scp mymachine:~/path/to/file


답변