2013-03-01 6 views
1


아래와 같이 셸 스크립트를 만들었습니다. 암호를 숨길 필요가 있습니다. 암호를 묻는 메시지가 나타나면 암호를 입력해야합니다. 내 로컬 시스템의 작은 따옴표로 작성된 아래 스크립트를 실행하면 암호가 숨겨집니다. SSH 부분을 추가하면 실용적이지 않습니다.셸 스크립트의 암호 숨기기

비밀번호를 숨기려면 어떻게해야합니까?

ssh [email protected] 'echo -n Password:; 
read -s password; 
echo; 
echo $password; 
' 

답변

4

tty 할당을 강제하려면 -t 옵션을 사용하여 ssh를 시도해보십시오.

ssh -t [email protected] 'echo -n Password:; 
read -s password; 
echo; 
echo $password;' 

편집 : 제안 된 솔루션의 설명

실행중인 프로세스에 대한 가상 터미널 장치를 할당하지 않고 기본 SSH로 로그인 세션 그러나 단지 명령을 실행하지 않는 경우. 이 동작은 버그는 아니지만 디자인에 따라 delibarately 선택되었습니다.

이렇게하면 서로 다른 컴퓨터간에 해석되지 않은 이진 데이터를 전달할 수 있습니다. 같은 아마 뭔가 : 데이터가 사이에 터미널 드라이버에 의해 필터링 한 경우이 방법은 거의 불가능하다 두 시스템 사이

ssh [email protected] 'cat remote_file' | local_program 

데이터 전달 - 이스케이프 시퀀스의 톤의 생각은 당신이 걱정해야 할 것입니다!

할당 된 터미널이 없으면 사용자 입력을 숨길 방법이 없습니다. stty something에 대한 시도는 터미널이 없기 때문에 실패합니다!

로그인 세션에서 실행되지 않더라도 ssh가 의사 터미널을 할당하도록하려면 -t 매개 변수를 전달하여 tty 할당을 강제해야합니다.

+0

나는 약간의 일이 벌어지고있는 것을 보았다. 그러나 여전히 입력은 유용합니다 :-) –

0

더 나은 사용 SSH 키, 그 방법은, 필요는 ssh-agent의 도움으로 암호를 전달 없습니다. 좋은 하우투보기 : https://wiki.archlinux.org/index.php/SSH_Keys

+1

가 사실 난 그냥 내가 특별히 given.Not 것을 숨길 필요는 password.If 은행 계좌를 입력하는 옵션이 있습니다 내가 다른 사람들에게 숨기고 싶다면 그것을 숨기 위해서 무엇을해야합니까? – user103134

+1

나는이 대답이 왜 downvoted되었는지 궁금하다. –

+1

@putnick : sry, 그때는 나야. 나는 대답을했기 때문에 답변을하기 때문에 "downvoted"(나는 방금 배웠다). _ssh_ passwords/keys를 조작하는 좋은 아이디어인데, 문제가 설명 된 것과 맞지 않는다. 암호 유형에 대한 qerying 전자 메일 파일 암호화 또는 도대체 무엇이. ssh 키 핸들링 문제에 대한 완벽한 솔루션을 반복하면서이 질문에 대한 답변을 놓치지 마십시오. – mikyra

0

나는이 당신을 도울 수 있습니다 생각하지만 내가 스크립트에 새로운 오전 :

#!/bin/sh 

echo -n "Enter Password : " 
stty -echo 
read password < /dev/tty 
stty echo 
echo 
echo -n "Enter Password again : " 
stty -echo 
read password1 < /dev/tty 
stty echo 
echo 
echo "Password Entered are : $password and $password1" 
+0

IMHO 이것은 비대화 형 모드에서와 마찬가지로 대상 시스템에 할당 된 의사 단말기가 없기 때문에'stty' 및'-s' 옵션이 작동하지 않습니다. – mikyra

+0

@mikyra : 소원 나는 당신이 말하는 것에 대해 정말로 이해할 수 있습니다. 나는 리눅스에 너무 익숙하지 않아, 내가 스크립트에 얼마나 새로운지에 대해 짐작할 수있다 :-). 나는 며칠 전에이 물건을 배웠다. 그래서 이것이 효과가있을 것이라고 생각했다. 나는 정말로 확신 할 수 없다. 단지 OP에 한 가지 더 많은 옵션을 보여주고 싶었다.주어진 의견을 바탕으로 –

+0

을 작성한 후 위의 게시물을 몇 가지 근거로 업데이트했습니다. 당신이 아직도 호기심이 있다면 거기를보십시오. – mikyra

관련 문제