Я могу использовать ssh конфигурационный файл для включения передачи ssh ключей, добавленных к ssh-агенту. Как я могу сделать то же с gpg ключами?
Править: Этот ответ является устаревшим теперь, когда надлежащая поддержка была реализована в OpenSSH, см. ответ Brian Minton.
SSH только способен к передаче соединений TCP в туннеле.
Можно, однако, использовать программу как socat
для передачи сокета Unix по TCP, с чем-то как этот (Вам будет нужен socat и на клиенте и на хостах сервера):
# Get the path of gpg-agent socket:
GPG_SOCK=$(echo "$GPG_AGENT_INFO" | cut -d: -f1)
# Forward some local tcp socket to the agent
(while true; do
socat TCP-LISTEN:12345,bind=127.0.0.1 UNIX-CONNECT:$GPG_SOCK;
done) &
# Connect to the remote host via ssh, forwarding the TCP port
ssh -R12345:localhost:12345 host.example.com
# (On the remote host)
(while true; do
socat UNIX-LISTEN:$HOME/.gnupg/S.gpg-agent,unlink-close,unlink-early TCP4:localhost:12345;
done) &
Тест, если это удается с gpg-connect-agent
. Удостоверьтесь, что GPG_AGENT_INFO не определен на удаленном хосте, так, чтобы он отступил к $HOME/.gnupg/S.gpg-agent
сокет.
Теперь, надо надеяться, все, в чем Вы нуждаетесь, является способом выполнить все это автоматически!