2016-10-28 7 views
-1

ssh를 통해 원격으로 액세스하는 2 개의 다른 서버가 있습니다. 나는 현재 crontab을 통해 매주 서버 A에서 서버 B로 아카이브를 옮기는 bash 스크립트를 작성 중이다. 스크립트는 서버 A에서 자연스럽게 실행됩니다. 서버 B에 로그인해야합니다. RSA 키를 설정하면 제대로 작동합니다 (A에서 ssh 사용자 @ B를 실행하고 더 이상 비밀번호를 묻지 않습니다. 오른쪽).ssh를 통한 원격 루트 로그인

문제는 사용자가 쓰기 권한이 없음 (ssh root 로그인이 B에서 비활성화 됨)입니다. root 권한을 얻으려면 정규 사용자 B와 로그인 한 다음 su를 입력하고 root 암호를 입력해야합니다.이 암호는 B에서 직접 수행 할 때 작동합니다.

내 질문은 : RSA를 통해 일반 사용자 B로 B에 로그인 한 후 자동으로 스크립트를 프로그래밍하여 (su를 입력하고 루트 암호를 입력 할 수 있습니까?)? 그런 다음 B의 대상 폴더에있는 파일을 scp로 진행 하시겠습니까?

감사합니다.

+0

이 질문은 StackOverflow에 정의 된 프로그래밍과 관련이 없습니다. ** ** S.E.에 더 적합 할 수 있습니다. 관련 사이트 http://superuser.com. Q 하단의 '깃발'링크를 사용하여 운영자에게 이동하도록 요청하십시오. 2 개의 다른 사이트에 같은 Q를 게시하지 마십시오. http://stackoverflow.com/tour, http://stackoverflow.com/help/how-to-ask, http://stackoverflow.com/help/dont-ask 및 http://stackoverflow.com을 읽어보십시오./help/mcve 여기에 더 많은 Q를 게시하기 전에. 감사와 행운을 비네. – shellter

+0

대상 폴더의 권한을 변경하여 사용자가 파일을 저장할 수있게 할 수 있습니까? – Robert

답변

0

예, sudo로 할 수 있습니다.

sudo ("man 5 sudoers"에 설명 된대로 visudo를 사용)를 구성하면 권한이없는 사용자가 암호 없이도 특정 명령을 루트로 실행할 수 있습니다.

는 그런 다음 "SCP"와 대상에 파일을 통해 "SSH 호스트 이름 sudo는 sometask"시나리오에 대한 그래서

, 첫 번째 복사본을 실행 한 후 sudo를을 사용하여 대상 호스트의 상승의 권한으로 스크립트를 실행합니다.

tar cf - directory | ssh hostB sudo tar -C directory xf -# 
: ssh hostB sudo tar -C directory xf -

당신이 로컬 타르를 실행 할 수있는가는 그에게 하나를 모두 수행 할 경우, 파이프 그렇게 hostB의에서 루트로 실행하는 타르는 루트 권한으로 압축을 해제 할 수 있습니다

(시험 안 함)

+0

그래서 기본적으로 나는 root 권한없이 scp를 실행하는 나의 사용자를 가능하게 할 수있다 .. 좋아, 대답 해 주셔서 감사하겠다. – heronpilot

+0

아니요, scp는 원격 시스템에서 사용자로 실행됩니다. 상승 된 권한으로 파일을 직접 생성하려면 솔루션에 추가 한 "sudo"와 함께 "tar"솔루션을 사용하십시오. – neuhaus