Basta fazer isso:
echo "Adding username and password..."
ssh "root@${dssAssocArray[$key]}" 'cat > /etc/smbcredentials' << EOF
username=$username
password=$password
EOF
Novo no BASH e Linux e precisa de ajuda rápida. Eu escrevi um script bash rápido que pede ao usuário por um nome de usuário e senha a partir da linha de comando e passa essa informação para um servidor remoto mais tarde via SSH. O problema é que um usuário tem um caractere 'na senha e o valor está causando erros de EOF ao usar o SSH. O seguinte é o meu código para capturar o nome de usuário e senha
echo "Please type in username:"
read username
read -s -p "Enter Password: " password
e o seguinte é onde eu envio as informações para o servidor remoto. Note, há uma matriz de servidores para os quais devo enviar isso.
echo "Adding username and password..."
ssh root@${dssAssocArray[$key]} "echo username=$username > /etc/smbcredentials"
ssh root@${dssAssocArray[$key]} "echo password=$password >> /etc/smbcredentials"
Existe alguma maneira simples de desreferenciar o '(se esse é o termo correto) ou qualquer outro caractere especial que possa causar uma fuga?
Você deve conseguir contornar isso simplesmente citando suas strings internas no comando ssh
. Por exemplo
echo "Adding username and password..."
ssh root@${dssAssocArray[$key]} "echo \"username=$username\" > /etc/smbcredentials"
ssh root@${dssAssocArray[$key]} "echo \"password=$password\" >> /etc/smbcredentials"