~/.bashrc
"어떤 목적으로" 보조 비밀번호를 묻는 스크립트를 추가했는데 이것이 제 목적에 부합했습니다. 그러나 한 가지 작은 문제가 있습니다.
scp
서버에 연결할 때 "stdin: is not a tty"에서 사용자 정의 스크립트를 ~/.bashrc
실행할 때 발생하는 오류 로 인해 실패합니다.scp
나는 sh second_pass.sh
출신~/.bashrc
콘텐츠 second_pass.sh
:
trapeze () {
printf "Trying to kill me!!" }
trap trapeze SIGINT
while true; do echo "Please enter the password:" read -s password
if [[ -z "$password" ]] ; then
continue ; fi
hash="$(echo -n "$password" | md5sum )" password=`echo "$hash" | awk '{print $1}'`
if [ "$password" == "a359c98e8c05feaf91bdb8cfc7dd6b" ] then
exit ; else
echo "WRONG!!!" fi done
결과는 내가 할 scp
때
stdin: is not a tty
Please enter the password:
그런 다음 scp
실패합니다.
scp
&를 사용하고 비밀번호 프롬프트 스크립트를 유지하고 싶습니다 ~/.bashrc
.
어떻게 해야 합니까?
답변1
교체를 시도하다
while true ; do echo ...
통과
while tty -s ; do echo ...
이렇게 하면 이중 비밀번호 확인이 비활성화됩니다.
이것은 당신이 원하는 것이 아닐 수도 있습니다.
이제 두 개의 비밀번호 전략을 고수하는 경우 남은 유일한 옵션은 scp
파일이 제공된 플랫폼에 따라 로그인한 후(그리고 두 번 식별한 후) 파일을 추출하는 것입니다.