그래서 여기에 질문이 있습니다. 원격 컴퓨터에 루트 전용 파일이 있고 개인 키에만 루트 없는 SSH 액세스가 있습니다(하지만 sudo는 있습니다). 이 파일을 내 로컬 컴퓨터에 복사하고 다른 사람들이 여러 번 사용할 것이므로 가능한 한 사용하기 쉽게 만들어야 합니다(별명 또는 쉘 스크립트).
내가 생각해낸 내용은 다음과 같습니다. 1. 원격 시스템에 SSH를 통해 권한이 있는 위치에 파일을 복사합니다. 2. 로컬 시스템에서 방금 복사한 파일에 대해 rsync --remove-source-files를 수행합니다.
하지만 단 하나의 명령으로 이를 수행할 수 있는 방법은 없습니다. 당신은 있나요?
답변1
나는 Eight Tonys의 답변을 개선할 수 있다고 생각합니다.
ssh -t user@target 'sudo cat /source/file' > output && chmod +x output
여러 파일이 관련된 경우공원rsync가 얼마나 자주 "단순화"하는지에 관계없이 rsync보다 사용하기 쉽습니다.
ssh -t user@target 'cd /src && pax -w ./' | pax -r
HTH.
답변2
ssh -t user@target machine sudo cp /source/file /target/file
-t
sudo가 비밀번호를 요청할 수 있도록 의사 tty를 만듭니다 . 이 ssh
명령은 대상 머신에서 실행된 후 연결이 끊어지는 선택적 명령( sudo cp ....
이 경우)을 사용합니다.
sudo
비밀번호(즉, user@target의 비밀번호)를 입력하라는 메시지가 표시됩니다 .
그런 다음 rsync
부팅 시스템에서 이 스크립트를 작성할 수 있습니다. 단일 스크립트에 두 줄만 포함하면 됩니다.