This is a reoccurring problem for everyone. For various reasons, either no ssh key is available for the push that matches a user (the user forgot to add their key, their key isn't on their agent keyring, etc), or the ssh-agent presents a key for another user that doesn't have access to push to an app.
While it is fine to talk people through "ssh-add -l" and "ssh-add -D" and "ssh-add ~/.ssh/id_rsa-deis", that's just the first layer. The second layer is telling people to use "deis keys:list" and "deis keys:add" to add the key for their user.
It would help to return two possible error messages during a git push that is rejected:
No user was found for any of your presented keys. Please try "deis keys:list" and "deis keys:add"
and
You presented a key for jsmith, but that user does not have shared permissions for the app you are pushing to.
These two things would help users realize what is going on and maybe take action themselves without having to resort to asking for support.
From @ianblenke on September 4, 2014 20:33
This is a reoccurring problem for everyone. For various reasons, either no ssh key is available for the push that matches a user (the user forgot to add their key, their key isn't on their agent keyring, etc), or the ssh-agent presents a key for another user that doesn't have access to push to an app.
While it is fine to talk people through "ssh-add -l" and "ssh-add -D" and "ssh-add ~/.ssh/id_rsa-deis", that's just the first layer. The second layer is telling people to use "deis keys:list" and "deis keys:add" to add the key for their user.
It would help to return two possible error messages during a git push that is rejected:
and
These two things would help users realize what is going on and maybe take action themselves without having to resort to asking for support.
Copied from original issue: deis/deis#1772