В общем поискав более нормального решения не нашёл. Спасибо за наводку, только немного доработал метод. Написал скрипт, который залезает и добавляет переменные окружения в кнопку запуска virt-manager.
#!/bin/bash
set -e
if [ -z "$SSH_AUTH_SOCK" ] ; then
eval `ssh-agent -s`
echo "$SSH_AUTH_SOCK $SSH_AGENT_PID"
echo -e "$SSH_AUTH_SOCK\n$SSH_AGENT_PID" > ~/.ssh_agent
fi
ssh-add ~/.ssh/red.hvs.lan
SSH_AUTH_SOCK=`echo $SSH_AUTH_SOCK | sed 's!\/!\\\/!g'`
sed -ri "s/(SSH_AGENT_PID=)[0-9]{4,}\ (SSH_AUTH_SOCK=)\/tmp\/ssh\-[A-Za-z0-9]{8,}\/agent\.[0-9]{4,}/\1$SSH_AGENT_PID \2$SSH_AUTH_SOCK/" ~/.local/share/applications/virt-manager.desktop
Вроде работает хорошо и пароль вводить можно только один раз.