diff --git a/app/models/key.rb b/app/models/key.rb
index 11c01242b156270c22e86d01d796ad7c1435968b..f5fc141985e0cb109ae059beb7edf428f395735d 100644
--- a/app/models/key.rb
+++ b/app/models/key.rb
@@ -56,15 +56,10 @@ class Key < ActiveRecord::Base
   def generate_fingerpint
     cmd_status = 0
     cmd_output = ''
-    file = Tempfile.new('gitlab_key_file')
-
-    begin
+    Tempfile.open('gitlab_key_file') do |file|
       file.puts key
       file.rewind
       cmd_output, cmd_status = popen("ssh-keygen -lf #{file.path}", '/tmp')
-    ensure
-      file.close
-      file.unlink # deletes the temp file
     end
 
     if cmd_status.zero?