diff --git a/lib/gitlab/backend/gitolite_config.rb b/lib/gitlab/backend/gitolite_config.rb
index ed366f61a79c331dd56f3d716a524331c2aa87f7..fcf43fa214dce874ac6beebb7e5db81133413a62 100644
--- a/lib/gitlab/backend/gitolite_config.rb
+++ b/lib/gitlab/backend/gitolite_config.rb
@@ -96,8 +96,9 @@ module Gitlab
     end
 
     def rm_key(user)
-      File.unlink(File.join(config_tmp_dir, 'gitolite/keydir',"#{user}.pub"))
-      `cd #{File.join(config_tmp_dir,'gitolite')} ; git rm keydir/#{user}.pub`
+      key_path = File.join(config_tmp_dir, 'gitolite/keydir', "#{user}.pub")
+      ga_key = ::Gitolite::SSHKey.from_file(key_path)
+      ga_repo.rm_key(ga_key)
     end
 
     # update or create