Following the [Debian tutorial on subkeys][1] I like to create a keyring with a primary key (SC) and two subkeys (E and S) and then export and remove the secret primary key. However I struggle to re-import the exported secret key in case I want to revoke and renew the subkeys. Initial setup with two subkeys pub 1024R/158C07CE created: 2015-09-21 expires: never usage: SC trust: ultimate validity: ultimate sub 1024R/588AC467 created: 2015-09-21 expires: never usage: E sub 1024R/3637E2AA created: 2015-09-21 expires: never usage: S [ultimate] (1). Foobar $ gpg -K sec 1024R/158C07CE 2015-09-21 uid Foobar ssb 1024R/588AC467 2015-09-21 ssb 1024R/3637E2AA 2015-09-21 # sec means the secret is still there Export primarykey-only, export subkeys-only, remove secret keys, and re-import subkeys $ gpg --export-secret-keys 158C07CE! > primary.sec # secret-keys with exclamation mark just exports primary keypair $ gpg --export-secret-subkeys 158C07CE > subs.sec $ gpg --delete-secret-keys 158C07CE $ gpg --import subs.sec $ gpg -K sec# 1024R/158C07CE 2015-09-21 uid Foobar ssb 1024R/588AC467 2015-09-21 ssb 1024R/3637E2AA 2015-09-21 # sec# means the secret key is missing (this is what I want) Now I want to re-import the primary secret key $ gpg --allow-secret-key-import --import primary.sec gpg: key 158C07CE: already in secret keyring gpg: Total number processed: 1 gpg: secret keys read: 1 gpg: secret keys unchanged: 1 What? Why? $ gpg -K sec# 1024R/158C07CE 2015-09-21 uid Foobar ssb 1024R/588AC467 2015-09-21 ssb 1024R/3637E2AA 2015-09-21 Here is useful [Stackexchange article on which keys GPG exports in which case][2] [1]: https://wiki.debian.org/Subkeys [2]: https://unix.stackexchange.com/questions/207815/which-keys-gpg-exports-and-what-is-in-the-keyrings