My question is, is this standard practice to temporarily set your private key file to not have a passphrase for the purposes of running a non interactive script [...]
Não. A prática padrão é usar um agente de chaves para armazenar sua frase secreta. Ao usar um agente de chave, você pode inserir sua frase-senha uma vez, ao adicionar a chave ao agente, e depois o agente a fornecerá às conexões ssh que você iniciar.
Existem muitos tutoriais sobre isso. Aqui está o uso básico em poucas palavras:
# start ssh key agent and set environment variables
eval $(ssh-agent)
# add your private key
ssh-add
Como funciona, em poucas palavras:
-
O comando
ssh-agentexibe algumas variáveis de ambiente que você precisa definir, para que os programas (comossh,scp,rsynce outros) encontrem o processossh-agent. Esta saída está pronta para executar, para realmente definir as variáveis, e esta é a finalidade da instruçãoeval. -
ssh-addencontra o processossh-agentgraças às variáveis de ambiente configuradas e adiciona a chave privada ao local padrão no diretório~/.ssh. Neste ponto, você será solicitado a digitar a frase secreta.
Depois disso, você poderá ssh , scp e outras pessoas para qualquer servidor em que sua chave esteja autorizada, sem precisar redigitar a frase secreta.