Skip to content

Instantly share code, notes, and snippets.

@Avaq
Created November 4, 2014 12:25
Show Gist options
  • Select an option

  • Save Avaq/e31ddbd427cffbeab734 to your computer and use it in GitHub Desktop.

Select an option

Save Avaq/e31ddbd427cffbeab734 to your computer and use it in GitHub Desktop.
Exporting and importing GPG keys over SSH
ssh user@remote gpg --export-secret-key KeyId | gpg --allow-secret-key-import --import
# Based on key ID.
ssh user@remote gpg --export KeyId | gpg --import
# Based on key owner name.
ssh user@remote gpg --export -a KeyOwnerName | gpg --import
gpg --export-secret-key KeyId | ssh user@remote gpg --allow-secret-key-import --import
gpg --export KeyId | ssh user@remote gpg --import
@Jacob-Stevens-Haas

Copy link
Copy Markdown

Thanks! Any idea what error sending to agent: Inappropriate ioctl for device means when pushing public/private key?

@Avaq

Avaq commented Dec 9, 2022

Copy link
Copy Markdown
Author

I have not come across that. I'm sorry.

@aidenscott2016

aidenscott2016 commented Feb 6, 2023

Copy link
Copy Markdown

@Jacob-Stevens-Haas I also have this error. you must add the --batch parameter to the importing gpg. eg gpg --armor --export-secret-keys $KEY_ID | ssh aiden@10.0.4.46 gpg --allow-secret-key-import --import --batch gpg (GnuPG) 2.3.7

@hsxfjames

Copy link
Copy Markdown

I ran into several problems, the following should solve them:

  1. error sending to agent: No pinentry: just install pinentry package on target machine.
  2. error sending to agent: No such file or directory: just like @aidenscott2016 said, need to add --batch parameter with --import together.
  3. problem 2 still, run echo pinentry-mode loopback >> ~/.gnupg/gpg-agent.conf and restart gpg agent after gpgconf --kill gpg-agent should fix it.

@mariano-daniel

mariano-daniel commented Jun 5, 2026

Copy link
Copy Markdown

@Jacob-Stevens-Haas I also have this error. you must add the --batch parameter to the importing gpg. eg gpg --armor --export-secret-keys $KEY_ID | ssh aiden@10.0.4.46 gpg --allow-secret-key-import --import --batch gpg (GnuPG) 2.3.7

I'm getting:

gpg: [stdout]: write error: Broken pipe
                                       gpg: build_packet(6) failed: Broken pipe
                                                                               gpg: WARNING: nothing exported
                                                                                                             %   

When running % gpg --export-secret-key 579C2BBCCCCCCCCCCC1E412E63EEFEE963335F9 | ssh mariano@192.168.0.23 gpg --allow-secret-key-import --import --batch

@mariano-daniel

Copy link
Copy Markdown

Running a more verbose output:

% gpg --export-secret-key 579C2BBCCCCCCCCCCC1E412E63EEFEE963335F9 | ssh mariano@192.168.0.23 gpg --allow-secret-key-import --import --batch -vvv
gpg: [stdout]: write error: Broken pipe
gpg: build_packet(6) failed: Broken pipe
gpg: WARNING: nothing exported
mariano@Marianos-MacBook-Pro ~ % gpg -vvv --export-secret-key 579C2BBCCCCCCCCCCC1E412E63EEFEE963335F9 | ssh mariano@192.168.0.23 gpg -vvv --allow-secret-key-import --import --batch     
gpg: using character set 'utf-8'
gpg: enabled compatibility flags:
gpg: writing to stdout
gpg: key EB37B83B18B8FFFFFFFFFEA36F40E14F47C: asking agent for the secret parts
gpg: pinentry launched (12819 curses 1.3.2 /dev/ttys000 xterm-256color /private/tmp/com.apple.launchd.yEdAjAw04N/org.xquartz:0 20620/501/4 501/20 0)
gpg: [stdout]: write error: Broken pipe
gpg: build_packet(6) failed: Broken pipe
gpg: WARNING: nothing exported
mariano@Marianos-MacBook-Pro ~ % 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment