2013-08-21 3 views
0

필자는 회사의 웹 서버 설치 및 구성을 완전히 자동화하는 아주 긴 스크립트를 만들었습니다. 스크립트 런타임 중에는 구성 파일을 다운로드하기 위해 scp와 ssh를 사용하는 원격 서버에 액세스하며 비밀번호를 보유하는 비밀 파일을 가질 수 있기를 원하며 (스크립트는 항상 동일한 비밀번호 임) 스크립트에서이 파일을 사용합니다 필요없이 파일을 수동으로 삽입 할 것입니다. 스크립트에서 일부 라인은 다음과 같이 :Bash : 스크립트에 비밀 파일을 사용하는 방법?

/usr/bin/scp [email protected]:/etc/mail/sendmail.cf /etc/mail/ 
/usr/bin/scp -r [email protected]:/etc/yum.repos.d /etc/ 

/usr/bin/ssh [email protected] 'rpm -qa --queryformat "%{NAME}\n" >/tmp/sw.lst' 
/usr/bin/scp [email protected]:/tmp/sw.lst /tmp/ 
/usr/bin/xargs yum -y install < /tmp/sw.lst 

내가 #ssh-keygen#ssh-copy-id의 방법에 대해 알고 있지만, 문제는 스크립트가 다른 시스템에있는 모든 시간을 실행하는 것입니다 내가 열쇠를 교환하고 싶지 않아 각 실행하기 전에.

+0

대신 암호 인증을 사용하여 [SSH 키] (https://wiki.archlinux.org/index.php/SSH_Keys)를 사용하십시오. – devnull

+0

당신은 내 모든 질문을 읽지 않았다, 나는 ssh-keys보다 다른 방법을 찾고 있다고 말했다. –

+0

키를 생성하는 것은 일회성 활동이므로 매번 새로운 시스템을 사용하지 않는 한 우선적으로 사용해야합니다. – devnull

답변

0

내가 이런 일을 할 때, 나는 expect과 파일에서 암호를 가져 오는 래퍼 스크립트를 사용했습니다. 즉, 내 암호 파일에 내가

[email protected] ThisIsMyPass 
[email protected] thisIsMyOtherPass 

같은 뭔가를하고 래퍼 스크립트 GET이있을 것이다

임은 더 적절한 방법이 있습니다 추측 (그것은 간단 grep "[email protected]" ~/.passwords | cut -d ' ' -f2로 될 수있다), 그러나 이것은 당신만을 래퍼와 암호 파일을 보호해야하며 설치 스크립트를 공개로 설정할 수 있습니다.

+0

'예상'이란 무엇입니까? –

+0

스크립트에서 scp-ing 할 때 필요할 때 암호를 "붙이기"위해서는'expect'라는 프로그램이 필요합니다. 자세한 정보 [여기] (http://linux.die.net/man/1/expect) – user2599522