Как я могу передать gpg ключ через ssh-агент?

Я могу использовать ssh конфигурационный файл для включения передачи ssh ключей, добавленных к ssh-агенту. Как я могу сделать то же с gpg ключами?

29
задан 10.07.2010, 05:05

1 ответ

Править: Этот ответ является устаревшим теперь, когда надлежащая поддержка была реализована в 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 сокет.

Теперь, надо надеяться, все, в чем Вы нуждаетесь, является способом выполнить все это автоматически!

16
ответ дан 07.12.2019, 09:20

Теги

Похожие вопросы