As far as I understand the source, when using the -d option to ssh-add it looks for the public key rather than the private key to remove an identity. This should be documented. The man page should also explain that it will search for <filename>.pub as well while trying to find it. Thanks!
Created attachment 1180 [details] Suggested patch for man page
I stumbled upon this bug when I was trying to remove an identity and I did not have the public key file available. In fact, I consider it a bug that a key file needs to be available when removing an identity. There should be a way to specify the identity to be removed without accessing a file. What if I added an identity from a file system (on removable storage) that is no longer available? Currently, in this case, I have no choice but to remove all identities. There doesn't seem to be any technical reason for this restriction.
Similar fix applied, it will be in OpenSSH 4.7 - thanks!
Close resolved bugs after release.