Skip to content

Ansible role to install and configure Apache with Tisamo's recommended configuration

License

Notifications You must be signed in to change notification settings

Bilalssbb/apache_centos_stream

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

<title>Generating a new SSH key and adding it to the ssh-agent - GitHub Docs</title><script defer="" nomodule="" src="/_next/static/chunks/polyfills-a40ef1678bae11e696dba45124eadd70.js"></script><script src="/_next/static/chunks/webpack-af28476a2e7790fd48db.js" defer=""></script><script src="/_next/static/chunks/framework-2b8be631586cbbc6886e.js" defer=""></script><script src="/_next/static/chunks/main-b8a6769be74e1aa37530.js" defer=""></script><script src="/_next/static/chunks/pages/_app-b63c58851710c2876063.js" defer=""></script><script src="/_next/static/chunks/0e226fb0-87d846b305d6ce1e6784.js" defer=""></script><script src="/_next/static/chunks/991-e27e6ca224a9f406666d.js" defer=""></script><script src="/_next/static/chunks/729-74bb5ca202eb8230e4e7.js" defer=""></script><script src="/_next/static/chunks/100-e15f0533bbaa6277ca3c.js" defer=""></script><script src="/_next/static/chunks/491-e6eb7fccb0a398a87291.js" defer=""></script><script src="/_next/static/chunks/pages/%5BversionId%5D/%5BproductId%5D/%5B...restPage%5D-afd178dc818d25b6b364.js" defer=""></script><script src="/_next/static/edGgo7ZaGV6U16AUhDsto/_buildManifest.js" defer=""></script><script src="/_next/static/edGgo7ZaGV6U16AUhDsto/_ssgManifest.js" defer=""></script><style data-styled="" data-styled-version="5.3.1">.bpHkHg{position:relative;display:inline-block;padding:6px 16px;font-family:inherit;font-weight:600;line-height:20px;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-radius:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-text-decoration:none;text-decoration:none;text-align:center;font-size:14px;}/*!sc*/

.bpHkHg:hover{-webkit-text-decoration:none;text-decoration:none;}/!sc/ .bpHkHg:focus{outline:none;}/!sc/ .bpHkHg:disabled{cursor:default;}/!sc/ .bpHkHg:disabled svg{opacity:0.6;}/!sc/ data-styled.g8[id="ButtonBase-sc-181ps9o-0"]{content:"bpHkHg,"}/!sc/ .eAEDUX{color:#0366d6;border:1px solid rgba(27,31,35,0.15);background-color:#fafbfc;box-shadow:0 1px 0 rgba(27,31,35,0.04);}/!sc/ .eAEDUX:hover{color:#ffffff;background-color:#0366d6;border-color:rgba(27,31,35,0.15);box-shadow:0 1px 0 rgba(27,31,35,0.1);}/!sc/ .eAEDUX:focus{border-color:rgba(27,31,35,0.15);box-shadow:0 0 0 3px rgba(0,92,197,0.4);}/!sc/ .eAEDUX:active{color:#ffffff;background-color:hsla(212,97%,40%,1);box-shadow:inset 0 1px 0 rgba(5,38,76,0.2);border-color:rgba(27,31,35,0.15);}/!sc/ .eAEDUX:disabled{color:rgba(3,102,214,0.5);background-color:#fafbfc;border-color:rgba(27,31,35,0.15);}/!sc/ data-styled.g12[id="ButtonOutline-sc-15gta9l-0"]{content:"eAEDUX,"}/!sc/ .wQTPf > summary{list-style:none;}/!sc/ .wQTPf > summary::-webkit-details-marker{display:none;}/!sc/ data-styled.g56[id="Details-ssy9qz-0"]{content:"wQTPf,"}/!sc/ .cbUQRS{position:relative;display:inline-block;}/!sc/ data-styled.g61[id="Dropdown__StyledDetails-sc-16yoecj-0"]{content:"cbUQRS,"}/!sc/ .hKmZUy{border:4px solid transparent;margin-left:12px;border-top-color:currentcolor;border-bottom-width:0;content:'';display:inline-block;height:0;vertical-align:middle;width:0;}/!sc/ data-styled.g62[id="Dropdown__DropdownCaret-sc-16yoecj-1"]{content:"hKmZUy,"}/!sc/ .bwhlIP{background-clip:padding-box;background-color:#ffffff;border:1px solid #e1e4e8;border-radius:6px;box-shadow:0 8px 24px rgba(149,157,165,0.2);left:0;list-style:none;margin-top:2px;padding:5px 0 5px 0 !important;position:absolute;top:100%;width:160px;z-index:100;right:0;left:auto;}/!sc/ .bwhlIP::before{position:absolute;display:inline-block;content:'';}/!sc/ .bwhlIP::after{position:absolute;display:inline-block;content:'';}/!sc/ .bwhlIP::before{border:8px solid transparent;border-bottom-color:#ffffff;}/!sc/ .bwhlIP::after{border:7px solid transparent;border-bottom-color:#ffffff;}/!sc/ .bwhlIP > ul{list-style:none;}/!sc/ .bwhlIP::before{top:-16px;right:9px;left:auto;}/!sc/ .bwhlIP::after{top:-14px;right:10px;left:auto;}/!sc/ data-styled.g63[id="Dropdown__DropdownMenu-sc-16yoecj-2"]{content:"bwhlIP,"}/!sc/ .gcRVWV{display:block;padding:4px 10px 4px 15px;overflow:hidden;color:#24292e;text-overflow:ellipsis;white-space:nowrap;}/!sc/ .gcRVWV a{color:#24292e;-webkit-text-decoration:none;text-decoration:none;display:block;overflow:hidden;color:#24292e;text-overflow:ellipsis;white-space:nowrap;}/!sc/ .gcRVWV:focus,.gcRVWV a:focus{color:#ffffff;-webkit-text-decoration:none;text-decoration:none;background-color:#0366d6;}/!sc/ .gcRVWV:hover,.gcRVWV:hover a{color:#ffffff;-webkit-text-decoration:none;text-decoration:none;background-color:#0366d6;outline:none;}/!sc/ data-styled.g64[id="Dropdown__DropdownItem-sc-16yoecj-3"]{content:"gcRVWV,"}/!sc/ .ucXfF ul{width:unset;}/!sc/ data-styled.g118[id="LanguagePicker___StyledDropdown-sc-1vjz4bo-0"]{content:"ucXfF,"}/!sc/ .cPqkmV ul{width:unset;}/!sc/ data-styled.g120[id="ArticleVersionPicker___StyledDropdown-sc-5dcjuc-0"]{content:"cPqkmV,"}/!sc/ </style>

Generating a new SSH key and adding it to the ssh-agent

After you've checked for existing SSH keys, you can generate a new SSH key to use for authentication, then add it to the ssh-agent.

About SSH key generation

If you don't already have an SSH key, you must generate a new SSH key to use for authentication. If you're unsure whether you already have an SSH key, you can check for existing keys. For more information, see "Checking for existing SSH keys."

If you want to use a hardware security key to authenticate to GitHub, you must generate a new SSH key for your hardware security key. You must connect your hardware security key to your computer when you authenticate with the key pair. For more information, see the OpenSSH 8.2 release notes.

If you don't want to reenter your passphrase every time you use your SSH key, you can add your key to the SSH agent, which manages your SSH keys and remembers your passphrase.

Generating a new SSH key

  1. Open TerminalTerminalGit Bash.

  2. Paste the text below, substituting in your GitHub email address.

    $ ssh-keygen -t ed25519 -C "your_email@example.com"

    Note: If you are using a legacy system that doesn't support the Ed25519 algorithm, use:

    $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
    This creates a new SSH key, using the provided email as a label.
    > Generating public/private ed25519 key pair.
  3. When you're prompted to "Enter a file in which to save the key," press Enter. This accepts the default file location.

    > Enter a file in which to save the key (/Users/you/.ssh/id_ed25519): [Press enter]
    > Enter a file in which to save the key (/c/Users/you/.ssh/id_ed25519):[Press enter]
    > Enter a file in which to save the key (/home/you/.ssh/id_ed25519): [Press enter]
  4. At the prompt, type a secure passphrase. For more information, see "Working with SSH key passphrases."

    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]

Adding your SSH key to the ssh-agent

Before adding a new SSH key to the ssh-agent to manage your keys, you should have checked for existing SSH keys and generated a new SSH key. When adding your SSH key to the agent, use the default macOS ssh-add command, and not an application installed by macports, homebrew, or some other external source.

  1. Start the ssh-agent in the background.

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566

    Depending on your environment, you may need to use a different command. For example, you may need to use root access by running sudo -s -H before starting the ssh-agent, or you may need to use exec ssh-agent bash or exec ssh-agent zsh to run the ssh-agent.

  2. If you're using macOS Sierra 10.12.2 or later, you will need to modify your ~/.ssh/config file to automatically load keys into the ssh-agent and store passphrases in your keychain.

    • First, check to see if your ~/.ssh/config file exists in the default location.

      $ open ~/.ssh/config
      > The file /Users/you/.ssh/config does not exist.
    • If the file doesn't exist, create the file.

      $ touch ~/.ssh/config
    • Open your ~/.ssh/config file, then modify the file to contain the following lines. If your SSH key file has a different name or path than the example code, modify the filename or path to match your current setup.

      Host *
        AddKeysToAgent yes
        UseKeychain yes
        IdentityFile ~/.ssh/id_ed25519
      

      Note: If you chose not to add a passphrase to your key, you should omit the UseKeychain line.

      Note: If you see an error like this

      /Users/USER/.ssh/config: line 16: Bad configuration option: usekeychain
      

      add an additional config line to your Host * section:

      Host *
        IgnoreUnknown UseKeychain
      
  3. Add your SSH private key to the ssh-agent and store your passphrase in the keychain. If you created your key with a different name, or if you are adding an existing key that has a different name, replace id_ed25519 in the command with the name of your private key file.

    $ ssh-add -K ~/.ssh/id_ed25519

    Note: The -K option is Apple's standard version of ssh-add, which stores the passphrase in your keychain for you when you add an SSH key to the ssh-agent. If you chose not to add a passphrase to your key, run the command without the -K option.

    If you don't have Apple's standard version installed, you may receive an error. For more information on resolving this error, see "Error: ssh-add: illegal option -- K."

  4. Add the SSH key to your account on GitHub. For more information, see "Adding a new SSH key to your GitHub account."

If you have GitHub Desktop installed, you can use it to clone repositories and not deal with SSH keys.

  1. Ensure the ssh-agent is running. You can use the "Auto-launching the ssh-agent" instructions in "Working with SSH key passphrases", or start it manually:

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    > Agent pid 59566
  2. Add your SSH private key to the ssh-agent. If you created your key with a different name, or if you are adding an existing key that has a different name, replace id_ed25519 in the command with the name of your private key file.

    $ ssh-add ~/.ssh/id_ed25519
  3. Add the SSH key to your account on GitHub. For more information, see "Adding a new SSH key to your GitHub account."

  1. Start the ssh-agent in the background.

    $ eval "$(ssh-agent -s)"
    > Agent pid 59566

    Depending on your environment, you may need to use a different command. For example, you may need to use root access by running sudo -s -H before starting the ssh-agent, or you may need to use exec ssh-agent bash or exec ssh-agent zsh to run the ssh-agent.

  2. Add your SSH private key to the ssh-agent. If you created your key with a different name, or if you are adding an existing key that has a different name, replace id_ed25519 in the command with the name of your private key file.

    $ ssh-add ~/.ssh/id_ed25519
  3. Add the SSH key to your account on GitHub. For more information, see "Adding a new SSH key to your GitHub account."

Generating a new SSH key for a hardware security key

If you are using macOS or Linux, you may need to update your SSH client or install a new SSH client prior to generating a new SSH key. For more information, see "Error: Unknown key type."

  1. Insert your hardware security key into your computer.

  2. Open TerminalTerminalGit Bash.

  3. Paste the text below, substituting in the email address for your account on GitHub.

    $ ssh-keygen -t ed25519-sk -C "your_email@example.com"

    Note: If the command fails and you receive the error invalid format or feature not supported, you may be using a hardware security key that does not support the Ed25519 algorithm. Enter the following command instead.

    $ ssh-keygen -t ecdsa-sk -C "your_email@example.com"
  4. When you are prompted, touch the button on your hardware security key.

  5. When you are prompted to "Enter a file in which to save the key," press Enter to accept the default file location.

    > Enter a file in which to save the key (/Users/you/.ssh/id_ed25519_sk): [Press enter]
    > Enter a file in which to save the key (/c/Users/you/.ssh/id_ed25519_sk):[Press enter]
    > Enter a file in which to save the key (/home/you/.ssh/id_ed25519_sk): [Press enter]
  6. When you are prompted to type a passphrase, press Enter.

    > Enter passphrase (empty for no passphrase): [Type a passphrase]
    > Enter same passphrase again: [Type passphrase again]
  7. Add the SSH key to your account on GitHub. For more information, see "Adding a new SSH key to your GitHub account."

Further reading

Did this doc help you?Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Or, learn how to contribute.

<script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"mainContext":{"breadcrumbs":[{"documentType":"product","href":"/en/authentication","title":"Authentication"},{"documentType":"category","href":"/en/authentication/connecting-to-github-with-ssh","title":"Connect with SSH"},{"documentType":"article","href":"/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent","title":"Generate new SSH key"}],"activeProducts":[{"id":"get-started","name":"Get started","href":"/get-started","dir":"content/get-started","toc":"content/get-started/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","enterprise-server@2.22","github-ae@latest"]},{"id":"account-and-profile","name":"Account and profile","href":"/account-and-profile","dir":"content/account-and-profile","toc":"content/account-and-profile/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","enterprise-server@2.22","github-ae@latest"]},{"id":"authentication","name":"Authentication","href":"/authentication","dir":"content/authentication","toc":"content/authentication/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","enterprise-server@2.22","github-ae@latest"]},{"id":"repositories","name":"Repositories","href":"/repositories","dir":"content/repositories","toc":"content/repositories/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","enterprise-server@2.22","github-ae@latest"]},{"id":"github","name":"GitHub","href":"/github","dir":"content/github","toc":"content/github/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","enterprise-server@2.22","github-ae@latest"]},{"id":"admin","name":"Enterprise administrators","href":"/enterprise-server@3.2/admin","dir":"content/admin","toc":"content/admin/index.md","wip":false,"hidden":false,"versions":["enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","enterprise-server@2.22","github-ae@latest"]},{"id":"billing","name":"Billing and payments","href":"/billing","dir":"content/billing","toc":"content/billing/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","enterprise-server@2.22","github-ae@latest"]},{"id":"organizations","name":"Organizations","href":"/organizations","dir":"content/organizations","toc":"content/organizations/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","enterprise-server@2.22","github-ae@latest"]},{"id":"code-security","name":"Code security","href":"/code-security","dir":"content/code-security","toc":"content/code-security/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","github-ae@latest"]},{"id":"issues","name":"GitHub Issues","href":"/issues","dir":"content/issues","toc":"content/issues/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","enterprise-server@2.22","github-ae@latest"]},{"id":"actions","name":"GitHub Actions","href":"/actions","dir":"content/actions","toc":"content/actions/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","enterprise-server@2.22","github-ae@latest"]},{"id":"codespaces","name":"GitHub Codespaces","href":"/codespaces","dir":"content/codespaces","toc":"content/codespaces/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest"]},{"id":"packages","name":"GitHub Packages","href":"/packages","dir":"content/packages","toc":"content/packages/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","enterprise-server@2.22","github-ae@latest"]},{"id":"search-github","name":"Search on GitHub","href":"/search-github","dir":"content/search-github","toc":"content/search-github/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","enterprise-server@2.22","github-ae@latest"]},{"id":"developers","name":"Developers","href":"/developers","dir":"content/developers","toc":"content/developers/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","enterprise-server@2.22","github-ae@latest"]},{"id":"rest","name":"REST API","href":"/rest","dir":"content/rest","toc":"content/rest/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","enterprise-server@2.22","github-ae@latest"]},{"id":"graphql","name":"GraphQL API","href":"/graphql","dir":"content/graphql","toc":"content/graphql/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","enterprise-server@2.22","github-ae@latest"]},{"id":"github-cli","name":"GitHub CLI","href":"/github-cli","dir":"content/github-cli","toc":"content/github-cli/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","enterprise-server@2.22","github-ae@latest"]},{"id":"discussions","name":"GitHub Discussions","href":"/discussions","dir":"content/discussions","toc":"content/discussions/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest"]},{"id":"sponsors","name":"GitHub Sponsors","href":"/sponsors","dir":"content/sponsors","toc":"content/sponsors/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest"]},{"id":"communities","name":"Building communities","href":"/communities","dir":"content/communities","toc":"content/communities/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","enterprise-server@2.22","github-ae@latest"]},{"id":"pages","name":"GitHub Pages","href":"/pages","dir":"content/pages","toc":"content/pages/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","enterprise-server@2.22","github-ae@latest"]},{"id":"education","name":"Education","href":"/education","dir":"content/education","toc":"content/education/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest"]},{"id":"desktop","name":"GitHub Desktop","href":"/desktop","dir":"content/desktop","toc":"content/desktop/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest"]},{"id":"atom","name":"Atom","href":"https://atom.io/docs","external":true},{"id":"electron","name":"Electron","href":"https://electronjs.org/docs","external":true},{"id":"codeql","name":"CodeQL","href":"https://codeql.github.com/docs","external":true}],"community_redirect":{},"currentProduct":{"id":"authentication","name":"Authentication","href":"/authentication","dir":"content/authentication","toc":"content/authentication/index.md","wip":false,"hidden":false,"versions":["free-pro-team@latest","enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","enterprise-server@2.22","github-ae@latest"]},"currentLayoutName":"default","isHomepageVersion":false,"isFPT":true,"error":"","data":{"ui":{"header":{"github_docs":"GitHub Docs","contact":"Contact","notices":{"ghae_silent_launch":"GitHub AE is currently under limited release. Please \u003ca href=\"https://enterprise.github.com/contact\"\u003econtact our Sales Team\u003c/a\u003e to find out more.","release_candidate":" is currently available as a release candidate. For more information, see \"\u003ca href=\"/admin/overview/about-upgrades-to-new-releases\"\u003eAbout upgrades to new releases\u003c/a\u003e.\"","localization_complete":"We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the \u003ca id=\"to-english-doc\" href=\"/en\"\u003eEnglish documentation\u003c/a\u003e. If there's a problem with translations on this page, please \u003ca href=\"https://github.com/contact?form[subject]=translation%20issue%20on%20docs.github.com\u0026form[comments]=\"\u003elet us know\u003c/a\u003e.","localization_in_progress":"Hello, explorer! This page is under active development or still in translation. For the most up-to-date and accurate information, please visit our \u003ca id=\"to-english-doc\" href=\"/en\"\u003eEnglish documentation\u003c/a\u003e.","early_access":"📣 Please \u003cb\u003edo not share\u003c/b\u003e this URL publicly. This page contains content about an early access feature.","release_notes_use_latest":"Please use the latest release for the latest security, performance, and bug fixes.","ghes_release_notes_upgrade_patch_only":"📣 This is not the \u003ca href=\"#{{ latestPatch }}\"\u003elatest patch release\u003c/a\u003e of Enterprise Server.","ghes_release_notes_upgrade_release_only":"📣 This is not the \u003ca href=\"/enterprise-server@{{ latestRelease }}/admin/release-notes\"\u003elatest release\u003c/a\u003e of Enterprise Server.","ghes_release_notes_upgrade_patch_and_release":"📣 This is not the \u003ca href=\"#{{ latestPatch }}\"\u003elatest patch release\u003c/a\u003e of this release series, and this is not the \u003ca href=\"/enterprise-server@{{ latestRelease }}/admin/release-notes\"\u003elatest release\u003c/a\u003e of Enterprise Server."}},"release_notes":{"banner_text_current":"These changes will roll out over the next one week.","banner_text_past":"These changes rolled out to enterprises during the week of"},"search":{"need_help":"Need help?","placeholder":"Search topics, products...","loading":"Loading","no_results":"No results found"},"homepage":{"explore_by_product":"Explore by product","version_picker":"Version"},"toc":{"getting_started":"Getting started","popular":"Popular","guides":"Guides","whats_new":"What's new"},"pages":{"article_version":"Article version:","miniToc":"In this article","contributor_callout":"This article is contributed and maintained by"},"errors":{"oops":"Ooops!","something_went_wrong":"It looks like something went wrong.","we_track_errors":"We track these errors automatically, but if the problem persists please feel free to contact us.","page_doesnt_exist":"It looks like this page doesn't exist."},"support":{"still_need_help":"Still need help?","contact_support":"Contact support","ask_community":"Ask the GitHub community"},"survey":{"able_to_find":"Did this doc help you?","yes":"Yes","no":"No","comment_yes_label":"Let us know what we do well","comment_no_label":"Let us know what we can do better","optional":"Optional","required":"Required","email_placeholder":"email@example.com","email_label":"Can we contact you if we have more questions?","send":"Send","feedback":"Thank you! We received your feedback.","not_support":"If you need a reply, please contact support instead.","privacy_policy":"Privacy policy"},"contribution_cta":{"title":"Help us make these docs great!","body":"All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.","button":"Make a contribution","or":"Or,","to_guidelines":"learn how to contribute."},"products":{"graphql":{"reference":{"fields":"Fields","arguments":"Arguments","name":"Name","type":"Type","description":"Description","input_fields":"Input fields","return_fields":"Return fields","implemented_by":"Implemented by","values":"Values","possible_types":"Possible types","preview_notice":"Preview notice","deprecation_notice":"Deprecation notice"}},"rest":{"reference":{"parameters":"Parameters","response":"Response","code_sample":"Code sample","code_samples":"Code samples","preview_notice":"Preview notice","preview_notices":"Preview notices","see_preview_notice":"See preview notice","see_preview_notices":"See preview notices","preview_header_is_required":"This header is \u003cstrong\u003erequired\u003c/strong\u003e"}}},"footer":{"all_rights_reserved":"All rights reserved","terms":"Terms","privacy":"Privacy","security":"Security","product":{"heading":"Product","links":{"features":"Features","security":"Security","enterprise":"Enterprise","case_studies":"Case Studies","pricing":"Pricing","resources":"Resources"}},"platform":{"heading":"Platform","links":{"developer_api":"Developer API","partners":"Partners","atom":"Atom","electron":"Electron","github_desktop":"GitHub Desktop"}},"support":{"heading":"Support","links":{"help":"Help","community_forum":"Community Forum","training":"Training","status":"Status","contact_github":"Contact GitHub"}},"company":{"heading":"Company","links":{"about":"About","blog":"Blog","careers":"Careers","press":"Press","shop":"Shop"}}},"product_landing":{"quickstart":"Quickstart","reference":"Reference","overview":"Overview","guides":"Guides","code_examples":"Code examples","search_code_examples":"Search code examples","show_more":"Show more","explore_people_and_projects":"Explore people and projects","sorry":"Sorry, there is no result for","no_example":"It looks like we don't have an example that fits your filter.","try_another":"Try another filter or add your code example.","no_result":"Sorry, there are no guides that match your filter.","learn":"Learn how to add a code example","communities_using_discussions":"Communities using discussions","add_your_community":"Add your community","sponsor_community":"GitHub Sponsors community","supported_releases":"Supported releases","release_notes_for":"Release notes for","upgrade_from":"Upgrade from","browse_all_docs":"Browse all docs","explore_release_notes":"Explore release notes"},"product_sublanding":{"start":"Start","start_path":"Start path","learning_paths":"{{ productMap[currentProduct].name }} learning paths","learning_paths_desc":"Learning paths are a collection of guides that help you master a particular subject.","guides":"{{ productMap[currentProduct].name }} guides","more_guides":"more guides","no_result":"Sorry, there are no guides that match your filter.","load_more":"Load more guides","all_guides":"All {{ productMap[currentProduct].name }} guides","filters":{"type":"Type","topic":"Topic","all":"All"},"guide_types":{"overview":"Overview","quick_start":"Quickstart","tutorial":"Tutorial","how_to":"How-to guide","reference":"Reference"}},"learning_track_nav":{"prevGuide":"Previous guide","nextGuide":"Next guide"},"toggle_images":{"off":"Images are off, click to show","on":"Images are on, click to hide","hide_single":"Hide image","show_single":"Show image"},"scroll_button":{"scroll_to_top":"Scroll to top"}},"reusables":{"enterprise_deprecation":{"deprecation_details":"No patch releases will be made, even for critical security issues. For better performance, improved security, and new features, \u003ca href=\"/enterprise/admin/guides/installation/upgrading-github-enterprise/\"\u003eupgrade to the latest version of GitHub Enterprise\u003c/a\u003e.\nFor help with the upgrade, \u003ca href=\"https://enterprise.github.com/support\"\u003econtact GitHub Enterprise support\u003c/a\u003e.","version_was_deprecated":"This version of GitHub Enterprise was discontinued on","version_will_be_deprecated":"This version of GitHub Enterprise will be discontinued on"},"policies":{"abuse":"{% data variables.product.prodname_dotcom %} does not tolerate abuse.{% ifversion fpt %} For more information on {% data variables.product.prodname_dotcom %}'s policies, see our [Terms of Service](/articles/github-terms-of-service) and [Community Guidelines](/articles/github-community-guidelines).{% endif %}","github-community-guidelines-and-terms":"{% data variables.product.company_short %} provides a baseline code of conduct for everyone who uses {% data variables.product.prodname_dotcom_the_website %}. For more information, see \"[{% data variables.product.company_short %} Terms of Service](/github/site-policy/github-terms-of-service)\" and \"[{% data variables.product.company_short %} Community Guidelines](/github/site-policy/github-community-guidelines).\"","translation":"This document is translated from English. In the event of any conflict, uncertainty, or apparent inconsistency between this version and the English version(s) of this document, the English version is the controlling version.\n\nIf you have suggestions to improve our translation, please \u003ca href=\"https://github.com/github/site-policy/issues\"\u003eopen an issue in our site-policy repository\u003c/a\u003e."}},"variables":{"release_candidate":{"version":""}}},"airGap":false,"currentCategory":"connecting-to-github-with-ssh","currentPathWithoutLanguage":"/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent","relativePath":"authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md","page":{"languageVariants":[{"name":"English","code":"en","hreflang":"en","href":"/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent"},{"name":"Simplified Chinese","code":"cn","hreflang":"zh-Hans","href":"/cn/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent"},{"name":"Japanese","code":"ja","hreflang":"ja","href":"/ja/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent"},{"name":"Spanish","code":"es","hreflang":"es","href":"/es/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent"},{"name":"Portuguese","code":"pt","hreflang":"pt","href":"/pt/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent"},{"name":"German","code":"de","hreflang":"de","href":"/de/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent"}],"documentType":"article","type":null,"title":"Generating a new SSH key and adding it to the ssh-agent","fullTitle":"Generating a new SSH key and adding it to the ssh-agent - GitHub Docs","topics":["SSH"],"introPlainText":"After you've checked for existing SSH keys, you can generate a new SSH key to use for authentication, then add it to the ssh-agent.","permalinks":[{"title":"Generating a new SSH key and adding it to the ssh-agent","pageVersionTitle":"GitHub.com","pageVersion":"free-pro-team@latest","href":"/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent","relativePath":"authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md","languageCode":"en"},{"title":"Generating a new SSH key and adding it to the ssh-agent","pageVersionTitle":"Enterprise Server 3.2","pageVersion":"enterprise-server@3.2","href":"/en/enterprise-server@3.2/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent","relativePath":"authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md","languageCode":"en"},{"title":"Generating a new SSH key and adding it to the ssh-agent","pageVersionTitle":"Enterprise Server 3.1","pageVersion":"enterprise-server@3.1","href":"/en/enterprise-server@3.1/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent","relativePath":"authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md","languageCode":"en"},{"title":"Generating a new SSH key and adding it to the ssh-agent","pageVersionTitle":"Enterprise Server 3.0","pageVersion":"enterprise-server@3.0","href":"/en/enterprise-server@3.0/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent","relativePath":"authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md","languageCode":"en"},{"title":"Generating a new SSH key and adding it to the ssh-agent","pageVersionTitle":"Enterprise Server 2.22","pageVersion":"enterprise-server@2.22","href":"/en/enterprise-server@2.22/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent","relativePath":"authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md","languageCode":"en"},{"title":"Generating a new SSH key and adding it to the ssh-agent","pageVersionTitle":"GitHub AE","pageVersion":"github-ae@latest","href":"/en/github-ae@latest/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent","relativePath":"authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent.md","languageCode":"en"}],"hidden":false},"enterpriseServerReleases":{"isOldestReleaseDeprecated":true,"oldestSupported":"2.22","nextDeprecationDate":"2021-09-23","supported":["3.2","3.1","3.0","2.22"]},"enterpriseServerVersions":["enterprise-server@3.2","enterprise-server@3.1","enterprise-server@3.0","enterprise-server@2.22"],"userLanguage":"ar","allVersions":{"free-pro-team@latest":{"version":"free-pro-team@latest","versionTitle":"GitHub.com","latestVersion":"free-pro-team@latest","currentRelease":"latest","openApiVersionName":"api.github.com","miscVersionName":"dotcom","plan":"free-pro-team","planTitle":"GitHub.com","shortName":"fpt","releases":["latest"],"latestRelease":"latest","nonEnterpriseDefault":true,"openApiBaseName":"api.github.com","miscBaseName":"dotcom"},"enterprise-server@3.2":{"version":"enterprise-server@3.2","versionTitle":"Enterprise Server 3.2","latestVersion":"enterprise-server@3.2","currentRelease":"3.2","openApiVersionName":"ghes-3.2","miscVersionName":"ghes-3.2","plan":"enterprise-server","planTitle":"Enterprise Server","shortName":"ghes","releases":["3.2","3.1","3.0","2.22"],"latestRelease":"3.2","hasNumberedReleases":true,"openApiBaseName":"ghes-","miscBaseName":"ghes-"},"enterprise-server@3.1":{"version":"enterprise-server@3.1","versionTitle":"Enterprise Server 3.1","latestVersion":"enterprise-server@3.2","currentRelease":"3.1","openApiVersionName":"ghes-3.1","miscVersionName":"ghes-3.1","plan":"enterprise-server","planTitle":"Enterprise Server","shortName":"ghes","releases":["3.2","3.1","3.0","2.22"],"latestRelease":"3.2","hasNumberedReleases":true,"openApiBaseName":"ghes-","miscBaseName":"ghes-"},"enterprise-server@3.0":{"version":"enterprise-server@3.0","versionTitle":"Enterprise Server 3.0","latestVersion":"enterprise-server@3.2","currentRelease":"3.0","openApiVersionName":"ghes-3.0","miscVersionName":"ghes-3.0","plan":"enterprise-server","planTitle":"Enterprise Server","shortName":"ghes","releases":["3.2","3.1","3.0","2.22"],"latestRelease":"3.2","hasNumberedReleases":true,"openApiBaseName":"ghes-","miscBaseName":"ghes-"},"enterprise-server@2.22":{"version":"enterprise-server@2.22","versionTitle":"Enterprise Server 2.22","latestVersion":"enterprise-server@3.2","currentRelease":"2.22","openApiVersionName":"ghes-2.22","miscVersionName":"ghes-2.22","plan":"enterprise-server","planTitle":"Enterprise Server","shortName":"ghes","releases":["3.2","3.1","3.0","2.22"],"latestRelease":"3.2","hasNumberedReleases":true,"openApiBaseName":"ghes-","miscBaseName":"ghes-"},"github-ae@latest":{"version":"github-ae@latest","versionTitle":"GitHub AE","latestVersion":"github-ae@latest","currentRelease":"latest","openApiVersionName":"github.ae","miscVersionName":"ghae","plan":"github-ae","planTitle":"GitHub AE","shortName":"ghae","releases":["latest"],"latestRelease":"latest","openApiBaseName":"github.ae","miscBaseName":"ghae"}},"currentVersion":"free-pro-team@latest","currentProductTree":{"href":"/en/authentication","renderedShortTitle":"","renderedFullTitle":"Authentication","page":{"hidden":false,"documentType":"product","title":"Authentication","shortTitle":""},"childPages":[{"href":"/en/authentication/keeping-your-account-and-data-secure","renderedShortTitle":"Account security","renderedFullTitle":"Keeping your account and data secure","page":{"hidden":false,"documentType":"category","title":"Keeping your account and data secure","shortTitle":"Account security"},"childPages":[{"href":"/en/authentication/keeping-your-account-and-data-secure/about-authentication-to-github","renderedShortTitle":"Authentication to GitHub","renderedFullTitle":"About authentication to GitHub","page":{"hidden":false,"documentType":"article","title":"About authentication to GitHub","shortTitle":"Authentication to GitHub"},"childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/creating-a-strong-password","renderedShortTitle":"Create a strong password","renderedFullTitle":"Creating a strong password","page":{"hidden":false,"documentType":"article","title":"Creating a strong password","shortTitle":"Create a strong password"},"childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/updating-your-github-access-credentials","renderedShortTitle":"Update access credentials","renderedFullTitle":"Updating your GitHub access credentials","page":{"hidden":false,"documentType":"article","title":"Updating your GitHub access credentials","shortTitle":"Update access credentials"},"childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token","renderedShortTitle":"Create a PAT","renderedFullTitle":"Creating a personal access token","page":{"hidden":false,"documentType":"article","title":"Creating a personal access token","shortTitle":"Create a PAT"},"childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/reviewing-your-ssh-keys","renderedShortTitle":"","renderedFullTitle":"Reviewing your SSH keys","page":{"hidden":false,"documentType":"article","title":"Reviewing your SSH keys","shortTitle":""},"childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/reviewing-your-deploy-keys","renderedShortTitle":"Deploy keys","renderedFullTitle":"Reviewing your deploy keys","page":{"hidden":false,"documentType":"article","title":"Reviewing your deploy keys","shortTitle":"Deploy keys"},"childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/authorizing-oauth-apps","renderedShortTitle":"","renderedFullTitle":"Authorizing OAuth Apps","page":{"hidden":false,"documentType":"article","title":"Authorizing OAuth Apps","shortTitle":""},"childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/authorizing-github-apps","renderedShortTitle":"","renderedFullTitle":"Authorizing GitHub Apps","page":{"hidden":false,"documentType":"article","title":"Authorizing GitHub Apps","shortTitle":""},"childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/reviewing-your-authorized-integrations","renderedShortTitle":"Authorized integrations","renderedFullTitle":"Reviewing your authorized integrations","page":{"hidden":false,"documentType":"article","title":"Reviewing your authorized integrations","shortTitle":"Authorized integrations"},"childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/connecting-with-third-party-applications","renderedShortTitle":"Third-party applications","renderedFullTitle":"Connecting with third-party applications","page":{"hidden":false,"documentType":"article","title":"Connecting with third-party applications","shortTitle":"Third-party applications"},"childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/reviewing-your-authorized-applications-oauth","renderedShortTitle":"Review OAuth apps","renderedFullTitle":"Reviewing your authorized applications (OAuth)","page":{"hidden":false,"documentType":"article","title":"Reviewing your authorized applications (OAuth)","shortTitle":"Review OAuth apps"},"childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/token-expiration-and-revocation","renderedShortTitle":"Token expiration","renderedFullTitle":"Token expiration and revocation","page":{"hidden":false,"documentType":"article","title":"Token expiration and revocation","shortTitle":"Token expiration"},"childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/reviewing-your-security-log","renderedShortTitle":"Security log","renderedFullTitle":"Reviewing your security log","page":{"hidden":false,"documentType":"article","title":"Reviewing your security log","shortTitle":"Security log"},"childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository","renderedShortTitle":"Remove sensitive data","renderedFullTitle":"Removing sensitive data from a repository","page":{"hidden":false,"documentType":"article","title":"Removing sensitive data from a repository","shortTitle":"Remove sensitive data"},"childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/about-anonymized-urls","renderedShortTitle":"","renderedFullTitle":"About anonymized URLs","page":{"hidden":false,"documentType":"article","title":"About anonymized URLs","shortTitle":""},"childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/about-githubs-ip-addresses","renderedShortTitle":"GitHub's IP addresses","renderedFullTitle":"About GitHub's IP addresses","page":{"hidden":false,"documentType":"article","title":"About GitHub's IP addresses","shortTitle":"GitHub's IP addresses"},"childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/githubs-ssh-key-fingerprints","renderedShortTitle":"SSH key fingerprints","renderedFullTitle":"GitHub's SSH key fingerprints","page":{"hidden":false,"documentType":"article","title":"GitHub's SSH key fingerprints","shortTitle":"SSH key fingerprints"},"childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/sudo-mode","renderedShortTitle":"","renderedFullTitle":"Sudo mode","page":{"hidden":false,"documentType":"article","title":"Sudo mode","shortTitle":""},"childPages":[]},{"href":"/en/authentication/keeping-your-account-and-data-secure/preventing-unauthorized-access","renderedShortTitle":"Unauthorized access","renderedFullTitle":"Preventing unauthorized access","page":{"hidden":false,"documentType":"article","title":"Preventing unauthorized access","shortTitle":"Unauthorized access"},"childPages":[]}]},{"href":"/en/authentication/securing-your-account-with-two-factor-authentication-2fa","renderedShortTitle":"Secure your account with 2FA","renderedFullTitle":"Securing your account with two-factor authentication (2FA)","page":{"hidden":false,"documentType":"category","title":"Securing your account with two-factor authentication (2FA)","shortTitle":"Secure your account with 2FA"},"childPages":[{"href":"/en/authentication/securing-your-account-with-two-factor-authentication-2fa/about-two-factor-authentication","renderedShortTitle":"About 2FA","renderedFullTitle":"About two-factor authentication","page":{"hidden":false,"documentType":"article","title":"About two-factor authentication","shortTitle":"About 2FA"},"childPages":[]},{"href":"/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication","renderedShortTitle":"Configure 2FA","renderedFullTitle":"Configuring two-factor authentication","page":{"hidden":false,"documentType":"article","title":"Configuring two-factor authentication","shortTitle":"Configure 2FA"},"childPages":[]},{"href":"/en/authentication/securing-your-account-with-two-factor-authentication-2fa/configuring-two-factor-authentication-recovery-methods","renderedShortTitle":"Configure 2FA recovery","renderedFullTitle":"Configuring two-factor authentication recovery methods","page":{"hidden":false,"documentType":"article","title":"Configuring two-factor authentication recovery methods","shortTitle":"Configure 2FA recovery"},"childPages":[]},{"href":"/en/authentication/securing-your-account-with-two-factor-authentication-2fa/accessing-github-using-two-factor-authentication","renderedShortTitle":"Access GitHub with 2FA","renderedFullTitle":"Accessing GitHub using two-factor authentication","page":{"hidden":false,"documentType":"article","title":"Accessing GitHub using two-factor authentication","shortTitle":"Access GitHub with 2FA"},"childPages":[]},{"href":"/en/authentication/securing-your-account-with-two-factor-authentication-2fa/recovering-your-account-if-you-lose-your-2fa-credentials","renderedShortTitle":"Recover an account with 2FA","renderedFullTitle":"Recovering your account if you lose your 2FA credentials","page":{"hidden":false,"documentType":"article","title":"Recovering your account if you lose your 2FA credentials","shortTitle":"Recover an account with 2FA"},"childPages":[]},{"href":"/en/authentication/securing-your-account-with-two-factor-authentication-2fa/changing-two-factor-authentication-delivery-methods-for-your-mobile-device","renderedShortTitle":"Change 2FA delivery method","renderedFullTitle":"Changing two-factor authentication delivery methods for your mobile device","page":{"hidden":false,"documentType":"article","title":"Changing two-factor authentication delivery methods for your mobile device","shortTitle":"Change 2FA delivery method"},"childPages":[]},{"href":"/en/authentication/securing-your-account-with-two-factor-authentication-2fa/countries-where-sms-authentication-is-supported","renderedShortTitle":"Countries supporting SMS","renderedFullTitle":"Countries where SMS authentication is supported","page":{"hidden":false,"documentType":"article","title":"Countries where SMS authentication is supported","shortTitle":"Countries supporting SMS"},"childPages":[]},{"href":"/en/authentication/securing-your-account-with-two-factor-authentication-2fa/disabling-two-factor-authentication-for-your-personal-account","renderedShortTitle":"Disable 2FA","renderedFullTitle":"Disabling two-factor authentication for your personal account","page":{"hidden":false,"documentType":"article","title":"Disabling two-factor authentication for your personal account","shortTitle":"Disable 2FA"},"childPages":[]}]},{"href":"/en/authentication/authenticating-with-saml-single-sign-on","renderedShortTitle":"Authenticate with SAML","renderedFullTitle":"Authenticating with SAML single sign-on","page":{"hidden":false,"documentType":"category","title":"Authenticating with SAML single sign-on","shortTitle":"Authenticate with SAML"},"childPages":[{"href":"/en/authentication/authenticating-with-saml-single-sign-on/about-authentication-with-saml-single-sign-on","renderedShortTitle":"SAML single sign-on","renderedFullTitle":"About authentication with SAML single sign-on","page":{"hidden":false,"documentType":"article","title":"About authentication with SAML single sign-on","shortTitle":"SAML single sign-on"},"childPages":[]},{"href":"/en/authentication/authenticating-with-saml-single-sign-on/authorizing-an-ssh-key-for-use-with-saml-single-sign-on","renderedShortTitle":"SSH Key with SAML","renderedFullTitle":"Authorizing an SSH key for use with SAML single sign-on","page":{"hidden":false,"documentType":"article","title":"Authorizing an SSH key for use with SAML single sign-on","shortTitle":"SSH Key with SAML"},"childPages":[]},{"href":"/en/authentication/authenticating-with-saml-single-sign-on/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on","renderedShortTitle":"PAT with SAML","renderedFullTitle":"Authorizing a personal access token for use with SAML single sign-on","page":{"hidden":false,"documentType":"article","title":"Authorizing a personal access token for use with SAML single sign-on","shortTitle":"PAT with SAML"},"childPages":[]},{"href":"/en/authentication/authenticating-with-saml-single-sign-on/viewing-and-managing-your-active-saml-sessions","renderedShortTitle":"Active SAML sessions","renderedFullTitle":"Viewing and managing your active SAML sessions","page":{"hidden":false,"documentType":"article","title":"Viewing and managing your active SAML sessions","shortTitle":"Active SAML sessions"},"childPages":[]}]},{"href":"/en/authentication/connecting-to-github-with-ssh","renderedShortTitle":"Connect with SSH","renderedFullTitle":"Connecting to GitHub with SSH","page":{"hidden":false,"documentType":"category","title":"Connecting to GitHub with SSH","shortTitle":"Connect with SSH"},"childPages":[{"href":"/en/authentication/connecting-to-github-with-ssh/about-ssh","renderedShortTitle":"","renderedFullTitle":"About SSH","page":{"hidden":false,"documentType":"article","title":"About SSH","shortTitle":""},"childPages":[]},{"href":"/en/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys","renderedShortTitle":"Check for existing SSH key","renderedFullTitle":"Checking for existing SSH keys","page":{"hidden":false,"documentType":"article","title":"Checking for existing SSH keys","shortTitle":"Check for existing SSH key"},"childPages":[]},{"href":"/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent","renderedShortTitle":"Generate new SSH key","renderedFullTitle":"Generating a new SSH key and adding it to the ssh-agent","page":{"hidden":false,"documentType":"article","title":"Generating a new SSH key and adding it to the ssh-agent","shortTitle":"Generate new SSH key"},"childPages":[]},{"href":"/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account","renderedShortTitle":"Add a new SSH key","renderedFullTitle":"Adding a new SSH key to your GitHub account","page":{"hidden":false,"documentType":"article","title":"Adding a new SSH key to your GitHub account","shortTitle":"Add a new SSH key"},"childPages":[]},{"href":"/en/authentication/connecting-to-github-with-ssh/testing-your-ssh-connection","renderedShortTitle":"Test your SSH connection","renderedFullTitle":"Testing your SSH connection","page":{"hidden":false,"documentType":"article","title":"Testing your SSH connection","shortTitle":"Test your SSH connection"},"childPages":[]},{"href":"/en/authentication/connecting-to-github-with-ssh/working-with-ssh-key-passphrases","renderedShortTitle":"SSH key passphrases","renderedFullTitle":"Working with SSH key passphrases","page":{"hidden":false,"documentType":"article","title":"Working with SSH key passphrases","shortTitle":"SSH key passphrases"},"childPages":[]}]},{"href":"/en/authentication/troubleshooting-ssh","renderedShortTitle":"","renderedFullTitle":"Troubleshooting SSH","page":{"hidden":false,"documentType":"category","title":"Troubleshooting SSH","shortTitle":""},"childPages":[{"href":"/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port","renderedShortTitle":"Use SSH over HTTPS port","renderedFullTitle":"Using SSH over the HTTPS port","page":{"hidden":false,"documentType":"article","title":"Using SSH over the HTTPS port","shortTitle":"Use SSH over HTTPS port"},"childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/recovering-your-ssh-key-passphrase","renderedShortTitle":"Recover SSH key passphrase","renderedFullTitle":"Recovering your SSH key passphrase","page":{"hidden":false,"documentType":"article","title":"Recovering your SSH key passphrase","shortTitle":"Recover SSH key passphrase"},"childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/deleted-or-missing-ssh-keys","renderedShortTitle":"Deleted or missing SSH keys","renderedFullTitle":"Deleted or missing SSH keys","page":{"hidden":false,"documentType":"article","title":"Deleted or missing SSH keys","shortTitle":"Deleted or missing SSH keys"},"childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-permission-denied-publickey","renderedShortTitle":"Permission denied (publickey)","renderedFullTitle":"Error: Permission denied (publickey)","page":{"hidden":false,"documentType":"article","title":"Error: Permission denied (publickey)","shortTitle":"Permission denied (publickey)"},"childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-bad-file-number","renderedShortTitle":"","renderedFullTitle":"Error: Bad file number","page":{"hidden":false,"documentType":"article","title":"Error: Bad file number","shortTitle":""},"childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-key-already-in-use","renderedShortTitle":"","renderedFullTitle":"Error: Key already in use","page":{"hidden":false,"documentType":"article","title":"Error: Key already in use","shortTitle":""},"childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-permission-to-userrepo-denied-to-other-user","renderedShortTitle":"Permission denied other-user","renderedFullTitle":"Error: Permission to user/repo denied to other-user","page":{"hidden":false,"documentType":"article","title":"Error: Permission to user/repo denied to other-user","shortTitle":"Permission denied other-user"},"childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-permission-to-userrepo-denied-to-userother-repo","renderedShortTitle":"Permission denied other-repo","renderedFullTitle":"Error: Permission to user/repo denied to user/other-repo","page":{"hidden":false,"documentType":"article","title":"Error: Permission to user/repo denied to user/other-repo","shortTitle":"Permission denied other-repo"},"childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-agent-admitted-failure-to-sign","renderedShortTitle":"Agent failure to sign","renderedFullTitle":"Error: Agent admitted failure to sign","page":{"hidden":false,"documentType":"article","title":"Error: Agent admitted failure to sign","shortTitle":"Agent failure to sign"},"childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-ssh-add-illegal-option----k","renderedShortTitle":"ssh-add: illegal option -- K","renderedFullTitle":"Error: ssh-add: illegal option -- K","page":{"hidden":false,"documentType":"article","title":"Error: ssh-add: illegal option -- K","shortTitle":"ssh-add: illegal option -- K"},"childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-ssl-certificate-problem-verify-that-the-ca-cert-is-ok","renderedShortTitle":"SSL certificate problem","renderedFullTitle":"Error: SSL certificate problem, verify that the CA cert is OK","page":{"hidden":false,"documentType":"article","title":"Error: SSL certificate problem, verify that the CA cert is OK","shortTitle":"SSL certificate problem"},"childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-unknown-key-type","renderedShortTitle":"","renderedFullTitle":"Error: Unknown key type","page":{"hidden":false,"documentType":"article","title":"Error: Unknown key type","shortTitle":""},"childPages":[]},{"href":"/en/authentication/troubleshooting-ssh/error-were-doing-an-ssh-key-audit","renderedShortTitle":"SSH key audit","renderedFullTitle":"Error: We're doing an SSH key audit","page":{"hidden":false,"documentType":"article","title":"Error: We're doing an SSH key audit","shortTitle":"SSH key audit"},"childPages":[]}]},{"href":"/en/authentication/managing-commit-signature-verification","renderedShortTitle":"Verify commit signatures","renderedFullTitle":"Managing commit signature verification","page":{"hidden":false,"documentType":"category","title":"Managing commit signature verification","shortTitle":"Verify commit signatures"},"childPages":[{"href":"/en/authentication/managing-commit-signature-verification/about-commit-signature-verification","renderedShortTitle":"Commit signature verification","renderedFullTitle":"About commit signature verification","page":{"hidden":false,"documentType":"article","title":"About commit signature verification","shortTitle":"Commit signature verification"},"childPages":[]},{"href":"/en/authentication/managing-commit-signature-verification/displaying-verification-statuses-for-all-of-your-commits","renderedShortTitle":"Displaying verification for all commits","renderedFullTitle":"Displaying verification statuses for all of your commits","page":{"hidden":false,"documentType":"article","title":"Displaying verification statuses for all of your commits","shortTitle":"Displaying verification for all commits"},"childPages":[]},{"href":"/en/authentication/managing-commit-signature-verification/checking-for-existing-gpg-keys","renderedShortTitle":"Existing GPG keys","renderedFullTitle":"Checking for existing GPG keys","page":{"hidden":false,"documentType":"article","title":"Checking for existing GPG keys","shortTitle":"Existing GPG keys"},"childPages":[]},{"href":"/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key","renderedShortTitle":"","renderedFullTitle":"Generating a new GPG key","page":{"hidden":false,"documentType":"article","title":"Generating a new GPG key","shortTitle":""},"childPages":[]},{"href":"/en/authentication/managing-commit-signature-verification/adding-a-new-gpg-key-to-your-github-account","renderedShortTitle":"Add a new GPG key","renderedFullTitle":"Adding a new GPG key to your GitHub account","page":{"hidden":false,"documentType":"article","title":"Adding a new GPG key to your GitHub account","shortTitle":"Add a new GPG key"},"childPages":[]},{"href":"/en/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key","renderedShortTitle":"Tell Git your signing key","renderedFullTitle":"Telling Git about your signing key","page":{"hidden":false,"documentType":"article","title":"Telling Git about your signing key","shortTitle":"Tell Git your signing key"},"childPages":[]},{"href":"/en/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key","renderedShortTitle":"Associate email with GPG key","renderedFullTitle":"Associating an email with your GPG key","page":{"hidden":false,"documentType":"article","title":"Associating an email with your GPG key","shortTitle":"Associate email with GPG key"},"childPages":[]},{"href":"/en/authentication/managing-commit-signature-verification/signing-commits","renderedShortTitle":"","renderedFullTitle":"Signing commits","page":{"hidden":false,"documentType":"article","title":"Signing commits","shortTitle":""},"childPages":[]},{"href":"/en/authentication/managing-commit-signature-verification/signing-tags","renderedShortTitle":"","renderedFullTitle":"Signing tags","page":{"hidden":false,"documentType":"article","title":"Signing tags","shortTitle":""},"childPages":[]}]},{"href":"/en/authentication/troubleshooting-commit-signature-verification","renderedShortTitle":"Troubleshoot verification","renderedFullTitle":"Troubleshooting commit signature verification","page":{"hidden":false,"documentType":"category","title":"Troubleshooting commit signature verification","shortTitle":"Troubleshoot verification"},"childPages":[{"href":"/en/authentication/troubleshooting-commit-signature-verification/checking-your-commit-and-tag-signature-verification-status","renderedShortTitle":"Check verification status","renderedFullTitle":"Checking your commit and tag signature verification status","page":{"hidden":false,"documentType":"article","title":"Checking your commit and tag signature verification status","shortTitle":"Check verification status"},"childPages":[]},{"href":"/en/authentication/troubleshooting-commit-signature-verification/updating-an-expired-gpg-key","renderedShortTitle":"Update expired GPG key","renderedFullTitle":"Updating an expired GPG key","page":{"hidden":false,"documentType":"article","title":"Updating an expired GPG key","shortTitle":"Update expired GPG key"},"childPages":[]},{"href":"/en/authentication/troubleshooting-commit-signature-verification/using-a-verified-email-address-in-your-gpg-key","renderedShortTitle":"Use verified email in GPG key","renderedFullTitle":"Using a verified email address in your GPG key","page":{"hidden":false,"documentType":"article","title":"Using a verified email address in your GPG key","shortTitle":"Use verified email in GPG key"},"childPages":[]}]}]},"featureFlags":{},"searchVersions":{"free-pro-team@latest":"dotcom","enterprise-server@3.2":"3.2","enterprise-server@3.1":"3.1","enterprise-server@3.0":"3.0","enterprise-server@2.22":"2.22","github-ae@latest":"ghae"},"nonEnterpriseDefaultVersion":"free-pro-team@latest","status":200,"fullUrl":"https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent"},"productLandingContext":{"title":"Generating a new SSH key and adding it to the ssh-agent","shortTitle":"Generate new SSH key","introPlainText":"After you've checked for existing SSH keys, you can generate a new SSH key to use for authentication, then add it to the ssh-agent.","intro":"\u003cp\u003eAfter you've checked for existing SSH keys, you can generate a new SSH key to use for authentication, then add it to the ssh-agent.\u003c/p\u003e","product_video":"","hasGuidesPage":false,"product":{"href":"/en/authentication","title":"Authentication"},"whatsNewChangelog":[],"changelogUrl":[],"productCodeExamples":[],"productCommunityExamples":[],"releases":[],"productUserExamples":[],"introLinks":null,"featuredLinks":{},"tocItems":[],"featuredArticles":[]},"productSubLandingContext":{"intro":"\u003cp\u003eAfter you've checked for existing SSH keys, you can generate a new SSH key to use for authentication, then add it to the ssh-agent.\u003c/p\u003e","title":"Authentication","featuredTrack":null,"learningTracks":[],"includeGuides":[]},"tocLandingContext":{"title":"Generating a new SSH key and adding it to the ssh-agent","productCallout":"","introPlainText":"After you've checked for existing SSH keys, you can generate a new SSH key to use for authentication, then add it to the ssh-agent.","tocItems":[],"variant":"compact","featuredLinks":{},"renderedPage":"","currentLearningTrack":{}},"articleContext":{"title":"Generating a new SSH key and adding it to the ssh-agent","intro":"\u003cp\u003eAfter you've checked for existing SSH keys, you can generate a new SSH key to use for authentication, then add it to the ssh-agent.\u003c/p\u003e","renderedPage":"\u003ch2 id=\"about-ssh-key-generation\"\u003e\u003ca aria-hidden=\"\" tabindex=\"-1\" class=\"doctocat-link\" href=\"#about-ssh-key-generation\"\u003e\u003csvg aria-hidden=\"\" role=\"img\" class=\"octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" fill=\"currentColor\" style=\"display:inline-block;user-select:none;vertical-align:middle\"\u003e\u003cpath fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003eAbout SSH key generation\u003c/h2\u003e\n\u003cp\u003eIf you don't already have an SSH key, you must generate a new SSH key to use for authentication. If you're unsure whether you already have an SSH key, you can check for existing keys. For more information, see \"\u003ca href=\"/en/github/authenticating-to-github/checking-for-existing-ssh-keys\"\u003eChecking for existing SSH keys\u003c/a\u003e.\"\u003c/p\u003e\n\u003cp\u003eIf you want to use a hardware security key to authenticate to GitHub, you must generate a new SSH key for your hardware security key. You must connect your hardware security key to your computer when you authenticate with the key pair. For more information, see the \u003ca href=\"https://www.openssh.com/txt/release-8.2\"\u003eOpenSSH 8.2 release notes\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eIf you don't want to reenter your passphrase every time you use your SSH key, you can add your key to the SSH agent, which manages your SSH keys and remembers your passphrase.\u003c/p\u003e\n\u003ch2 id=\"generating-a-new-ssh-key\"\u003e\u003ca aria-hidden=\"\" tabindex=\"-1\" class=\"doctocat-link\" href=\"#generating-a-new-ssh-key\"\u003e\u003csvg aria-hidden=\"\" role=\"img\" class=\"octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" fill=\"currentColor\" style=\"display:inline-block;user-select:none;vertical-align:middle\"\u003e\u003cpath fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003eGenerating a new SSH key\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eOpen \u003cspan class=\"platform-mac\"\u003eTerminal\u003c/span\u003e\u003cspan class=\"platform-linux\"\u003eTerminal\u003c/span\u003e\u003cspan class=\"platform-windows\"\u003eGit Bash\u003c/span\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePaste the text below, substituting in your GitHub email address.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e$ ssh-keygen -t ed25519 -C \"\u003cem\u003eyour_email@example.com\u003c/em\u003e\"\u003c/code\u003e\u003c/pre\u003e\n\u003cdiv class=\"extended-markdown note border rounded-1 mb-4 p-3 color-border-info color-bg-info f5\"\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e If you are using a legacy system that doesn't support the Ed25519 algorithm, use:\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e$ ssh-keygen -t rsa -b 4096 -C \"your_email@example.com\"\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e \nThis creates a new SSH key, using the provided email as a label.\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e\u003e Generating public/private ed25519 key pair.\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen you're prompted to \"Enter a file in which to save the key,\" press Enter. This accepts the default file location.\u003c/p\u003e\n\u003cdiv class=\"extended-markdown mac\"\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e\u003e Enter a file in which to save the key (/Users/\u003cem\u003eyou\u003c/em\u003e/.ssh/id_ed25519): \u003cem\u003e[Press enter]\u003c/em\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"extended-markdown windows\"\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e\u003e Enter a file in which to save the key (/c/Users/\u003cem\u003eyou\u003c/em\u003e/.ssh/id_ed25519):\u003cem\u003e[Press enter]\u003c/em\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"extended-markdown linux\"\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e\u003e Enter a file in which to save the key (/home/\u003cem\u003eyou\u003c/em\u003e/.ssh/id_ed25519): \u003cem\u003e[Press enter]\u003c/em\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAt the prompt, type a secure passphrase. For more information, see \u003ca href=\"/en/articles/working-with-ssh-key-passphrases\"\u003e\"Working with SSH key passphrases\u003c/a\u003e.\"\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e\u003e Enter passphrase (empty for no passphrase): \u003cem\u003e[Type a passphrase]\u003c/em\u003e\n\u003e Enter same passphrase again: \u003cem\u003e[Type passphrase again]\u003c/em\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"adding-your-ssh-key-to-the-ssh-agent\"\u003e\u003ca aria-hidden=\"\" tabindex=\"-1\" class=\"doctocat-link\" href=\"#adding-your-ssh-key-to-the-ssh-agent\"\u003e\u003csvg aria-hidden=\"\" role=\"img\" class=\"octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" fill=\"currentColor\" style=\"display:inline-block;user-select:none;vertical-align:middle\"\u003e\u003cpath fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003eAdding your SSH key to the ssh-agent\u003c/h2\u003e\n\u003cp\u003eBefore adding a new SSH key to the ssh-agent to manage your keys, you should have checked for existing SSH keys and generated a new SSH key. \u003cspan class=\"platform-mac\"\u003eWhen adding your SSH key to the agent, use the default macOS \u003ccode\u003essh-add\u003c/code\u003e command, and not an application installed by \u003ca href=\"https://www.macports.org/\"\u003emacports\u003c/a\u003e, \u003ca href=\"http://brew.sh/\"\u003ehomebrew\u003c/a\u003e, or some other external source.\u003c/span\u003e\u003c/p\u003e\n\u003cdiv class=\"extended-markdown mac\"\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eStart the ssh-agent in the background. \u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e$ eval \"$(ssh-agent -s)\"\n\u003e Agent pid 59566\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eDepending on your environment, you may need to use a different command. For example, you may need to use root access by running \u003ccode\u003esudo -s -H\u003c/code\u003e before starting the ssh-agent, or you may need to use \u003ccode\u003eexec ssh-agent bash\u003c/code\u003e or \u003ccode\u003eexec ssh-agent zsh\u003c/code\u003e to run the ssh-agent.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf you're using macOS Sierra 10.12.2 or later, you will need to modify your \u003ccode\u003e~/.ssh/config\u003c/code\u003e file to automatically load keys into the ssh-agent and store passphrases in your keychain.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFirst, check to see if your \u003ccode\u003e~/.ssh/config\u003c/code\u003e file exists in the default location.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e$ open ~/.ssh/config\n\u003e The file /Users/\u003cem\u003eyou\u003c/em\u003e/.ssh/config does not exist.\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf the file doesn't exist, create the file.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e$ touch ~/.ssh/config\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOpen your \u003ccode\u003e~/.ssh/config\u003c/code\u003e file, then modify the file to contain the following lines. If your SSH key file has a different name or path than the example code, modify the filename or path to match your current setup. \u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eHost *\n AddKeysToAgent yes\n UseKeychain yes\n IdentityFile ~/.ssh/id_ed25519\n\u003c/code\u003e\u003c/pre\u003e\n\u003cdiv class=\"extended-markdown note border rounded-1 mb-4 p-3 color-border-info color-bg-info f5\"\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e If you chose not to add a passphrase to your key, you should omit the \u003ccode\u003eUseKeychain\u003c/code\u003e line.\u003c/p\u003e\n\u003c/div\u003e\n \u003cdiv class=\"extended-markdown mac\"\u003e\n \u003cdiv class=\"extended-markdown note border rounded-1 mb-4 p-3 color-border-info color-bg-info f5\"\u003e\n\u003cp\u003e \u003cstrong\u003eNote:\u003c/strong\u003e If you see an error like this\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e/Users/USER/.ssh/config: line 16: Bad configuration option: usekeychain\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e add an additional config line to your \u003ccode\u003eHost *\u003c/code\u003e section:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eHost *\n IgnoreUnknown UseKeychain\n\u003c/code\u003e\u003c/pre\u003e\n \u003c/div\u003e\n \u003c/div\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd your SSH private key to the ssh-agent and store your passphrase in the keychain. If you created your key with a different name, or if you are adding an existing key that has a different name, replace \u003cem\u003eid_ed25519\u003c/em\u003e in the command with the name of your private key file.\u003c/p\u003e\n \u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e$ ssh-add -K ~/.ssh/id_ed25519\u003c/code\u003e\u003c/pre\u003e\n\u003cdiv class=\"extended-markdown note border rounded-1 mb-4 p-3 color-border-info color-bg-info f5\"\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e The \u003ccode\u003e-K\u003c/code\u003e option is Apple's standard version of \u003ccode\u003essh-add\u003c/code\u003e, which stores the passphrase in your keychain for you when you add an SSH key to the ssh-agent. If you chose not to add a passphrase to your key, run the command without the \u003ccode\u003e-K\u003c/code\u003e option. \u003c/p\u003e\n\u003cp\u003eIf you don't have Apple's standard version installed, you may receive an error. For more information on resolving this error, see \"\u003ca href=\"/en/articles/error-ssh-add-illegal-option-k\"\u003eError: ssh-add: illegal option -- K\u003c/a\u003e.\"\u003c/p\u003e\n\u003c/div\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd the SSH key to your account on GitHub. For more information, see \"\u003ca href=\"/en/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account\"\u003eAdding a new SSH key to your GitHub account\u003c/a\u003e.\"\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n\u003cdiv class=\"extended-markdown windows\"\u003e\n\u003cp\u003eIf you have \u003ca href=\"https://desktop.github.com/\"\u003eGitHub Desktop\u003c/a\u003e installed, you can use it to clone repositories and not deal with SSH keys.\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eEnsure the ssh-agent is running. You can use the \"Auto-launching the ssh-agent\" instructions in \"\u003ca href=\"/en/articles/working-with-ssh-key-passphrases\"\u003eWorking with SSH key passphrases\u003c/a\u003e\", or start it manually:\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e# start the ssh-agent in the background\n$ eval \"$(ssh-agent -s)\"\n\u003e Agent pid 59566\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd your SSH private key to the ssh-agent. If you created your key with a different name, or if you are adding an existing key that has a different name, replace \u003cem\u003eid_ed25519\u003c/em\u003e in the command with the name of your private key file.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e$ ssh-add ~/.ssh/id_ed25519\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd the SSH key to your account on GitHub. For more information, see \"\u003ca href=\"/en/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account\"\u003eAdding a new SSH key to your GitHub account\u003c/a\u003e.\"\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n\u003cdiv class=\"extended-markdown linux\"\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eStart the ssh-agent in the background. \u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e$ eval \"$(ssh-agent -s)\"\n\u003e Agent pid 59566\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eDepending on your environment, you may need to use a different command. For example, you may need to use root access by running \u003ccode\u003esudo -s -H\u003c/code\u003e before starting the ssh-agent, or you may need to use \u003ccode\u003eexec ssh-agent bash\u003c/code\u003e or \u003ccode\u003eexec ssh-agent zsh\u003c/code\u003e to run the ssh-agent.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd your SSH private key to the ssh-agent. If you created your key with a different name, or if you are adding an existing key that has a different name, replace \u003cem\u003eid_ed25519\u003c/em\u003e in the command with the name of your private key file.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e$ ssh-add ~/.ssh/id_ed25519\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd the SSH key to your account on GitHub. For more information, see \"\u003ca href=\"/en/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account\"\u003eAdding a new SSH key to your GitHub account\u003c/a\u003e.\"\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003c/div\u003e\n\u003ch2 id=\"generating-a-new-ssh-key-for-a-hardware-security-key\"\u003e\u003ca aria-hidden=\"\" tabindex=\"-1\" class=\"doctocat-link\" href=\"#generating-a-new-ssh-key-for-a-hardware-security-key\"\u003e\u003csvg aria-hidden=\"\" role=\"img\" class=\"octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" fill=\"currentColor\" style=\"display:inline-block;user-select:none;vertical-align:middle\"\u003e\u003cpath fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003eGenerating a new SSH key for a hardware security key\u003c/h2\u003e\n\u003cp\u003eIf you are using macOS or Linux, you may need to update your SSH client or install a new SSH client prior to generating a new SSH key. For more information, see \"\u003ca href=\"/en/github/authenticating-to-github/error-unknown-key-type\"\u003eError: Unknown key type\u003c/a\u003e.\"\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eInsert your hardware security key into your computer.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOpen \u003cspan class=\"platform-mac\"\u003eTerminal\u003c/span\u003e\u003cspan class=\"platform-linux\"\u003eTerminal\u003c/span\u003e\u003cspan class=\"platform-windows\"\u003eGit Bash\u003c/span\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePaste the text below, substituting in the email address for your account on GitHub.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e$ ssh-keygen -t ed25519-sk -C \"\u003cem\u003eyour_email@example.com\u003c/em\u003e\"\u003c/code\u003e\u003c/pre\u003e\n\u003cdiv class=\"extended-markdown note border rounded-1 mb-4 p-3 color-border-info color-bg-info f5\"\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e If the command fails and you receive the error \u003ccode\u003einvalid format\u003c/code\u003e or \u003ccode\u003efeature not supported,\u003c/code\u003e you may be using a hardware security key that does not support the Ed25519 algorithm. Enter the following command instead.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e$ ssh-keygen -t ecdsa-sk -C \"your_email@example.com\"\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e \n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen you are prompted, touch the button on your hardware security key.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen you are prompted to \"Enter a file in which to save the key,\" press Enter to accept the default file location.\u003c/p\u003e\n\u003cdiv class=\"extended-markdown mac\"\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e\u003e Enter a file in which to save the key (/Users/\u003cem\u003eyou\u003c/em\u003e/.ssh/id_ed25519_sk): \u003cem\u003e[Press enter]\u003c/em\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"extended-markdown windows\"\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e\u003e Enter a file in which to save the key (/c/Users/\u003cem\u003eyou\u003c/em\u003e/.ssh/id_ed25519_sk):\u003cem\u003e[Press enter]\u003c/em\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003cdiv class=\"extended-markdown linux\"\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e\u003e Enter a file in which to save the key (/home/\u003cem\u003eyou\u003c/em\u003e/.ssh/id_ed25519_sk): \u003cem\u003e[Press enter]\u003c/em\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/div\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen you are prompted to type a passphrase, press \u003cstrong\u003eEnter\u003c/strong\u003e.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"hljs language-shell\"\u003e\u003e Enter passphrase (empty for no passphrase): \u003cem\u003e[Type a passphrase]\u003c/em\u003e\n\u003e Enter same passphrase again: \u003cem\u003e[Type passphrase again]\u003c/em\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd the SSH key to your account on GitHub. For more information, see \"\u003ca href=\"/en/github/authenticating-to-github/adding-a-new-ssh-key-to-your-github-account\"\u003eAdding a new SSH key to your GitHub account\u003c/a\u003e.\"\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"further-reading\"\u003e\u003ca aria-hidden=\"\" tabindex=\"-1\" class=\"doctocat-link\" href=\"#further-reading\"\u003e\u003csvg aria-hidden=\"\" role=\"img\" class=\"octicon-link\" viewBox=\"0 0 16 16\" width=\"16\" height=\"16\" fill=\"currentColor\" style=\"display:inline-block;user-select:none;vertical-align:middle\"\u003e\u003cpath fill-rule=\"evenodd\" d=\"M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003eFurther reading\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\"\u003ca href=\"/en/articles/about-ssh\"\u003eAbout SSH\u003c/a\u003e\"\u003c/li\u003e\n\u003cli\u003e\"\u003ca href=\"/en/articles/working-with-ssh-key-passphrases\"\u003eWorking with SSH key passphrases\u003c/a\u003e\"\u003c/li\u003e\n\u003cli\u003e\"\u003ca href=\"/en/articles/authorizing-an-ssh-key-for-use-with-saml-single-sign-on\"\u003eAuthorizing an SSH key for use with SAML single sign-on\u003c/a\u003e\"\u003c/li\u003e\n\u003c/ul\u003e","miniTocItems":[{"indentationLevel":0,"platform":"","contents":"\u003ca href=\"#about-ssh-key-generation\"\u003eAbout SSH key generation\u003c/a\u003e"},{"indentationLevel":0,"platform":"","contents":"\u003ca href=\"#generating-a-new-ssh-key\"\u003eGenerating a new SSH key\u003c/a\u003e"},{"indentationLevel":0,"platform":"","contents":"\u003ca href=\"#adding-your-ssh-key-to-the-ssh-agent\"\u003eAdding your SSH key to the ssh-agent\u003c/a\u003e"},{"indentationLevel":0,"platform":"","contents":"\u003ca href=\"#generating-a-new-ssh-key-for-a-hardware-security-key\"\u003eGenerating a new SSH key for a hardware security key\u003c/a\u003e"},{"indentationLevel":0,"platform":"","contents":"\u003ca href=\"#further-reading\"\u003eFurther reading\u003c/a\u003e"}],"contributor":null,"permissions":"","includesPlatformSpecificContent":true,"defaultPlatform":"","product":"","currentLearningTrack":{}}},"themeProps":{"colorMode":"auto","nightTheme":"dark","dayTheme":"light"},"csrfToken":"1Q9IWAAd-gOldUWm0ax7oEK_GEJV_uxrrX1U","languagesContext":{"languages":{"en":{"name":"English","code":"en","hreflang":"en","dir":"","wip":false},"cn":{"name":"Simplified Chinese","nativeName":"简体中文","code":"cn","hreflang":"zh-Hans","redirectPatterns":[{},{}],"dir":"translations/zh-CN","wip":false},"ja":{"name":"Japanese","nativeName":"日本語","code":"ja","hreflang":"ja","redirectPatterns":[{}],"dir":"translations/ja-JP","wip":false},"es":{"name":"Spanish","nativeName":"Español","code":"es","hreflang":"es","dir":"translations/es-XL","wip":false},"pt":{"name":"Portuguese","nativeName":"Português do Brasil","code":"pt","hreflang":"pt","dir":"translations/pt-BR","wip":false},"de":{"name":"German","nativeName":"Deutsch","code":"de","hreflang":"de","dir":"translations/de-DE","wip":true}}},"__N_SSP":true},"page":"/[versionId]/[productId]/[...restPage]","query":{"versionId":"free-pro-team@latest","productId":"authentication","restPage":["connecting-to-github-with-ssh","generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent"]},"buildId":"edGgo7ZaGV6U16AUhDsto","isFallback":false,"gssp":true,"customServer":true,"appGip":true,"locale":"en","locales":["en","cn","ja","es","pt","de"],"defaultLocale":"en","scriptLoader":[]}</script>

About

Ansible role to install and configure Apache with Tisamo's recommended configuration

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages