wykonywanie komend na zdalnym serwerze

Poniżej prezentuje skrypt który pozwoli wykonać automatycznie polecenia na linux na zdalnej maszynie.
Skrypt zakłada, że maszyna na której będziemy wykonywać połączenia zna nasz klucz publiczny. Jak to zrobić.
Dzięki temu nie będzie potrzeba podawania hasła za każdym razem gdy będziemy dostawać się do zdalnego serwera.

Kod pliku execute_remotly.sh

#!/bin/bash
machine_user=$1
machine_host=$2
machine_path=$3
machine_pass=$4

step1="scp moj_skrypt_ktory_sie_wykona.sh $machine_user@$machine_host:$machine_path"
step2="ssh $machine_user@$machine_host echo \"2testowy plik\" >> /tmp/plik"
step3="ssh $machine_user@$machine_host $machine_path/moj_skrypt_ktory_sie_wykona.sh $machine_user $machine_host $machine_path $machine_pass"

steps="
$step1
$step2
$step3
$step4
"

OIFS="$IFS"
IFS=$'\n'
for step in $steps
do
$(eval $step)
done
IFS="$OIFS"

W tym samym katalogu powinien również znaleść się plik moj_skrypt_ktory_sie_wykona.sh
Kod skryptu moj_skrypt_ktory_sie_wykona.sh

#!/bin/bash
machine_user=$1
machine_host=$2
machine_path=$3
machine_pass=$4
echo "Uruchomienie w trybie root"
echo "$machine_pass" | sudo -S -v
sleep 2
# Zainstalujemy na serwerze midnight commander
sudo apt-get install mc

Uruchomienie skryptu:
./execute_remotly.sh zdalny_uzytkownik adres_maszyny /home/zdalny_uzytkownik haslo_zdalnego_uzytkownik

root