Внутри bash скрипта скопировать файл по ssh от другого пользователя
Есть доступ по ssh от сервера к нескольким узлам. Задаются параметры - имя и пароль пользователя, этого пользователя надо создать на всех машинах сети и обеспечить беспарольный доступ по ssh под этим пользователем. Пользователей создаю так, успешно:
user=$1
pass=$2
enc_pass=$(mkpasswd -m yescrypt $pass)
hosts="список айпишников"
for i in $hosts; do
echo "work ip=$i"
ssh $i "sudo -S useradd -s /bin/bash -m -p '$enc_pass' '$user'"
done
Далее создаю ключ на сервере для беспарольного доступа для вновь созданного пользователя $user:
sudo -u $user ssh-keygen -t rsa
Как дальше его скопировать на нужный мне узел?
sudo -u $user scp ~/.ssh/id_rsa.pub $user@$i:~/.ssh/
выдает ошибку /home/user/.ssh/id_rsa.pub: Permission denied. user - пользователь от которого изначально запускаю скрипт. Почему scp считает домашним каталогом /home/user/, а не /home/$user/? И правильно ли вообще я делаю подобную задачу?