비밀번호를 수동으로 입력하세요

비밀번호를 수동으로 입력하세요

스크립트가 실행 중입니다.

#!/bin/sh


echo "Enter Server IP Address"
read IP
echo 'mypassword' | sudo -S ssh $IP </home/myscript.sh 

IP 주소와 비밀번호를 수동으로 입력할 수 있도록 이를 어떻게 수정합니까?

답변1

read명령은 사용자에게 입력하라는 메시지를 표시하며 해당 입력은 변수에 저장될 수 있습니다. 이는 스크립트의 3번째 줄에서 볼 수 있습니다 read IP. 따라서 다른 변수를 받으려면 read다른 변수가 필요합니다.

깔끔한 제안:

#!/bin/sh
read -p "Enter Server IP Address: " IP
read -s -p "Enter your Password: " PASSWORD
echo "$PASSWORD" | sudo -S ssh $IP </home/myscript.sh

-p명령에서 대리인 프롬프트를 읽고 입력을 수락하기 전에 메시지를 출력할 수 있습니다. 이렇게 하면 -s사용자의 입력이 표시되지 않아 뒤에 있는 사람들이 입력한 내용을 볼 수 없습니다.

답변2

사용자에게 비밀번호를 묻는 메시지를 표시할 수 있습니다.

#!/bin/sh 

printf "Enter Server IP Address: "
read IP

printf "Enter Server Password: "
read -s PASSWORD

echo "$PASSWORD" | sudo -S ssh $IP

참고: -s의 옵션은 read사용자 입력을 반영하지 않습니다. 따라서 다른 사람이 자신의 단말기를 볼 수 있다는 걱정 없이 비밀번호를 입력할 수 있습니다.

또는 명령줄 매개변수를 통해 입력하세요.

#!/bin/sh

usage() {
    echo "$0 [IP] [PASSWORD]"
    exit 1
}

if [ $# -eq 2 ]; then
    IP=$1
    PASSWORD=$2
else
    usage
fi

echo "$PASSWORD" | sudo -S ssh $IP

관련 정보