2016-11-21 2 views
1

ssh를 통해 명령을 일괄 처리하고 해당 호출의 시스템이 해당 명령의 종료 상태와 출력을 결정하도록하지만 암호가 미리 알려지고 이 아닌 경우이 직접 입력됩니다.SSH_ASKPASS가있는 ssh가 항상 실패 함

This 내가 원하는 것처럼 보이지만 작동하지 않습니다.

비행 전 점검 :

#> ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null [email protected] 'echo here' && echo ok || echo no 
Warning: Permanently added '[localhost]:22' (ECDSA) to the list of known hosts. 
[email protected]'s password: 
here 
ok 

좋은 시작합니다. 이제 SSH_ASKPASS와 함께 번들

#!/bin/bash 

u="testuser" 
p="testpassword" 

ask="/tmp/ask" 

echo "echo $p" > $ask 
chmod +x $ask 

SSH_ASKPASS=$ask 
DISPLAY=localhost:0.0 
setsid ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null [email protected] 'echo here' && echo ok || echo no 

보안 문제를 무시하십시오. 이것은 단지 POC입니다.

나는이 문제점은 무엇입니까

#> /tmp/test.sh 
Warning: Permanently added '[localhost]:22' (ECDSA) to the list of known hosts. 
Permission denied, please try again. 
Permission denied, please try again. 
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). 
no 

실행하면?

+0

Afaik, 변수를 내 보내야합니다. '-vvv'로'ssh'를 실행하면'ASKPASS'가 사용되지 않는다는 것을 알 수 있습니다. – Jakuje

+0

그거야. 완전한 답을 원하십니까? – spraff

답변

0

당신은 당신의 ssh 명령에 적용 할 환경 변수를 내 보내야합니다 :

export DISPLAY 
export SSH_ASKPASS 

SSH_ASKPASS 명령을 사용하지 않는 것을 당신에게 말할 것이다 ssh-vvv으로 실행.

0

SSH_ASKPASS 환경 변수는 ssh 키 암호를 검색하는 데 사용할 수있는 프로그램의 이름입니다. 암호를 읽는 것은 유용하지 않습니다. SSH를 man 페이지에서 : 그것은 터미널에서 실행 된 경우 SSH가 암호 필요

경우

SSH_ASKPASS, 현재의 터미널에서 암호를 읽습니다. ssh에 터미널이 없지만 DISPLAY 및 SSH_ASKPASS가 설정되어 있으면 SSH_ASKPASS로 지정된 프로그램을 실행하고 X11 창을 열어 암호를 읽습니다. 이는 특히 .xsession 또는 관련 스크립트에서 ssh를 호출 할 때 유용합니다. (일부 시스템에이 일을 할 수는/dev/null로의 입력을 리디렉션 할 필요가있을 수도 있습니다.)

는 OpenSSH를 ssh 유틸리티는 이외에서 암호를 읽을 수있는 방법을 제공하지 않습니다 TTY, 내가 아는 한.

+0

감사합니다. 이것을 어떻게 솔루션으로 바꾸는가? 즉, 사용자 이름/암호가 주어진다면 암호를 어떻게 얻을 수 있습니까? 이것이이 사용자가 ssh를 사용하는 것은 처음일지도 모릅니다. 그래서 키가 아직 존재하지 않을 수도 있다는 것을 의미합니다 ... ??? – spraff

+0

암호는 사용자 이름과 암호와 관련이 없습니다. 암호는 ssh 키와 관련이 있습니다. ssh-keygen을 사용하여 키를 만든 다음 ssh를 설정하여 암호 대신 해당 키를 사용하십시오. 키를 사용하도록 ssh를 설정하는 방법에 대한 정보는 [su] 또는 [unix.se]로 가야합니다. – Kenster

관련 문제