Inserindo manualmente uma senha

0

O script está funcionando:

#!/bin/sh


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

Como faço para modificá-lo para que eu possa inserir manualmente o endereço IP e minha senha?

    
por tester787 28.09.2015 / 19:13

2 respostas

1

o comando read solicita ao usuário entrada e essa entrada pode ser armazenada em uma variável. Isso é visto na linha 3 do seu script read IP . Então, para pegar outra variável, você só precisa de outro read para outra variável.

Uma sugestão limpa:

#!/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

O -p no comando de leitura significa prompt e permite que você envie uma mensagem antes de receber a entrada. O -s impede que a digitação do usuário seja exibida, para que uma pessoa que olhe por cima do seu ombro não possa ver o que você digita.

    
por 28.09.2015 / 19:38
1

Você pode solicitar ao usuário que digite uma senha:

#!/bin/sh 

printf "Enter Server IP Address: "
read IP

printf "Enter Server Password: "
read -s PASSWORD

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

NOTA: A opção -s em read não irá ecoar a entrada de usuários. Portanto, você pode digitar uma senha sem ter que se preocupar com a possibilidade de os outros lerem no seu terminal.

Ou digite-o através de um argumento de linha de comando:

#!/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
    
por 28.09.2015 / 19:36