2011-11-29 4 views
2

다른 리눅스 머신에 연결하고 거기에서 파일을 삭제하기위한 쉘 스크립트를 작성해야합니다. 예를 들어리눅스 스크립트에서 비밀번호를 제공하는 방법

,

ssh booksserver 
rm -rf Books-ws.war 

지금, 내 질문은, 어떻게 (ssh를 booksserver 실행시 필수) 암호를 제공 할 수 있습니까?

+1

분명하지만, 당신은 책을 서버에서 바로 그 rm -rf를 실행하기 위해 같은 줄에 명령을 쓸 수 있다는 것을 알고 있습니까? – Miquel

답변

1

암호를 입력하지 마십시오. 암호를 요청하는 시스템없이 로그인하려면 public key authentication 실행 ssh-agent을 설정해야합니다.

0

대신 키 기반 인증을 사용할 수는 있습니다.

  • 당신은 (암호 없음) 공개 키와 개인 키
  • 공개 키는
  • 당신이로 ssh를 할 수있는 사용자 이름과 키를 전달하는 booksserver에 복사를 만들 :입니다

    SSH user @ booksserver -i keyfile

많은 튜토리얼이 있으며 구체적인 단계는 배포마다 다를 수 있습니다. Ubuntu의 경우 이것은 좋은 것입니다 : https://help.ubuntu.com/community/SSH/OpenSSH/Keys

+0

패스 구문으로도 할 수 있지만 스크립트를 실행하기 전에 에이전트를 실행하고 한 번 추가하십시오. –

1

클라이언트 측에서 암호 전용 개인 키를 사용하고 서버 측 authorized_keys 파일의 공개 키와 특정 명령 (예 : 실행되는 것은 rm -rf Books-ws.war, 또는 같은 것을하는 쉘 스크립트). 하여 원격 호스트상의 지정된 사용자에 대한 .ssh/authorized_keys2에서 다음을 가지고 예를 들어

: 당신이 사용하여 연결하는 경우에만 적 date을 실행

command="date" ssh-rsa AAAAB3NzaC1yc2EAAAABIw[...]Q== Comment for passphraseless key 

키가 : 아마 이미

[localhost] % ssh -i /path/to/id [email protected]   
Sun 20 Nov 2011 20:29:59 EST 
Connection to remotehost closed. 
관련 문제