2014-11-18 2 views
1

그래서 ClientA와 ServerB를 설정하고 ServerB가 백업 스크립트를 실행하도록 설정했다고 가정 해 보겠습니다. 지금 당면한 문제와 관련이없는 이유로 백업 스크립트는 ClientA에서 여러 bash 스크립트를 실행해야합니다. 이제 보안상의 이유로 ClientA에 "백업"사용자를 설정하고 ServerB가이 "백업"사용자로 ClientA에 로그인 할 수있게하는 키 쌍이 있습니다. 그러나 나는이 단계를 더 취하여 단일 스크립트에서만 작동하도록하고 싶습니다.ssh 키를 통해 bash 스크립트에 플래그를 전달

command="/backup.sh",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa A...... 

내 문제는 내가 ClientA 여러 번에서 스크립트를 실행하는 것입니다 때마다 나는 다른 플래그의 번호를 사용 : 여기

핵심이다. 그러나 SSH 키를 통해 이러한 플래그를 전달할 수 없습니다.

$ ssh [email protected] "/backup.sh -b" 

이 때문에 내가 ClientA에 설정 한 키의를 통해 -b 플래그를 통과하지 않습니다

그래서 다음과 같은 I 시도하고 실행 말할 수 있습니다. 내가 설정 한 ssh 키를 통해 플래그가 전달되도록하는 방법이 있습니까?

감사합니다.

답변

0

이 종류의 일에는 환경 변수 SSH_ORIGINAL_COMMAND을 사용할 수 있습니다.

SSH_ORIGINAL_COMMAND이 변수에는 강제 명령이 실행될 때 원래 명령 줄이 포함됩니다. 원래 인수를 추출하는 데 사용할 수 있습니다

+0

이것에 대해 자세히 설명해 주시겠습니까? 나는 약간의 인터넷 검색을했고, 당신이 말하는 것처럼 아주 간단하게 보이지 않습니다. – KroniK907

+0

강제 명령 프로세스의 환경에서는'SSH_ORIGINAL_COMMAND' 변수가 있어야합니다. 이 변수는 원래 요청한 명령의 내용을 포함해야합니다. '/backup.sh -b'를 사용하십시오. 이를 사용하여 원래 인수를 구문 분석 할 수 있어야합니다. –

관련 문제