여러 사용자가 사용할 수있는 공용 서버에 개미 스크립트가 있습니다. 스크립트에 암호를 안전하게 입력하고 여러 대상에 사용하려고합니다. 다음 코드는 입력이있는 암호를 가져 오지만 변수가 sshexec 작업으로 전달되지 않습니다.sshexec에 대한 개미 입력 비밀번호
이 방법이 있습니까? 아니면 더 좋은 방법이 있습니까?
여러 사용자가 사용할 수있는 공용 서버에 개미 스크립트가 있습니다. 스크립트에 암호를 안전하게 입력하고 여러 대상에 사용하려고합니다. 다음 코드는 입력이있는 암호를 가져 오지만 변수가 sshexec 작업으로 전달되지 않습니다.sshexec에 대한 개미 입력 비밀번호
이 방법이 있습니까? 아니면 더 좋은 방법이 있습니까?
좋아요 ... 저는 1 년 늦었지만 새로운 친구에게는 이것이 문제를 해결 한 방법입니다. 내 목표는이
처럼 보였다 마지막으로 내 서버에 ~/become-root.sh에 bash는 스크립트를 만들었습니다<target name="getServerCredentials" unless="${server.user}">
<input message="${server-name} user:" addproperty="server.user" />
<input message="${server.user} password:" addproperty="server.pass">
<handler classname="org.apache.tools.ant.input.SecureInputHandler" />
</input>
</target>
<target name="execute-command" depends="getServerCredentials">
<sshexec host="${server-name}" username="${server.user}" password="${server.pass}" command="~./become-root.sh" inputproperty="server.pass"/>
</target>
(명백하게) 암호를 공개하지 않고 루트로 명령을 실행하는 것이 었습니다 당신이 실행 - 명령 작업이 이제 sudo는 등의 명령을 실행할 수 있습니다 호출하면
#!/bin/sh
read var
echo $var | sudo -S whoami --
이 도움이
희망을 (사용자가 sudoer이라고 가정)!
+1 매개 변수 -S –
이렇게하면됩니다. 두 작업 간의 종속성이 맞습니까? 단일 명령으로 실행 해 보셨습니까? 가능하면을 추가하고 출력을 표시 하시겠습니까? –
Jayan
@Jajan 각 대상에서 를 테스트했습니다. "get_password"대상에서 에코는 적절한 값을 반환합니다. 그러나 "create_tmp_dir"대상은 $ {password}를 반환합니다. addproperty가 빌드 파일에 대한 변수를 작성하지 않는 것 같습니다. 또한이 를 시도하고 인증이 내 ssh 세션에 실패했습니다. –
jsmickey
''변경이 올바른 것입니다. 이 후에 create_tmp_dir 대상의 암호 값은 무엇입니까? –
Jayan