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-agent
exibe algumas variáveis de ambiente que você precisa definir, para que os programas (comossh
,scp
,rsync
e 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-add
encontra o processossh-agent
graç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.