Você não precisa fazer duas conexões para fazer o que está fazendo. Assumindo que ssh-copy-id
não funcionará para você, aqui está algo de um script que escrevi há muito tempo (antes de saber sobre ssh-copy-id) que faz isso em um ssh:
tar c $keys | ssh "$1" "set -e; cd \'mktemp -d\'; tar x; mkdir -p ~/.ssh; chmod go-w ~/.ssh; cat $keys >> ~/.ssh/authorized_keys; chmod go-w ~/.ssh/authorized_keys"
Sim, essa é uma linha enorme. $keys
contém os nomes de todas as chaves públicas (lembre-se, este é um script antigo):
keys=''
for k in identity.pub id_rsa.pub id_dsa.pub; do
[ -e ~/.ssh/$k ] && keys="$keys $k"
done
O principal é que o ssh é um transporte seguro para binário, então você pode usá-lo para transferir tar para colocar seus arquivos na mesma sessão que está executando o seu chmod, etc.