---
layout: guide
title: GitHub security
subtitle: This guide details GitHub's server security design and practices.
---

h3. Engine Yard security

Our host, Engine Yard, has a PDF available on their security practices "here":http://www.engineyard.com/docs/EY_Security_WP.pdf.

h3. Communications

All private data exchanged with GitHub is always transmitted over SSL (which is why your dashboard is served over HTTPS, for instance). All pushing and pulling of private data is done over SSH authenticated with keys, not passwords.

The SSH login credentials used to push and pull can not be used to access a shell or the filesystem. All users are virtual (meaning they have no user account on our machines) and are access controlled through the peer reviewed, open source git-shell.

h3. File system and backups

We do not encrypt repositories on disk because it would not be any more secure: the website and git backend would need to decrypt the repositories on demand, slowing down response times.  Any user with shell access to the file system would have access to the decryption routine, thus negating any security it provides. Therefore, we focus on making our machines and network as secure as possible.

Our database and your repositories are backed up nightly off-site.  We do not retroactively remove repositories from backups when deleted by the user, as we may need to restore the repo for the user if it was removed accidentally.

h3. Employee access

No GitHub employees ever access private repositories unless required to for support reasons.  Staff working directly in the file store access the compressed Git database, your code is never present as plaintext files like it would be in a local clone.  Support staff may log into your account to access settings related to your support issue.  In rare cases staff may need to pull a clone of your code, this will only be done with your consent.  Support staff does not have direct access to clone any repo, he will need to temporarily attach his SSH key to your account to pull a clone.  When working a support issue we do our best to respect your privacy as much as possible, we only access the files and settings needed to resolve your issue.  All cloned repos are deleted as soon as the support issue has been resolved.

h3. Maintaining security

We protect your login from brute force attacks with rate limiting.  All passwords are filtered from all our logs and encrypted.  Login information is always sent over SSL.

We keep a security consultant on retainer to help identify and prevent new attack vectors.  We always test new features in order to cut out potential attacks, such as XSS-protecting wikis, and ensuring that Pages cannot access cookies.

We're extremely concerned and active about security, but we're aware that many companies are not comfortable putting their code under someone else's control.  For these companies we offer "GitHub:FI":http://fi.github.com/, a version of GitHub that can be installed to a server within the company's network.