{"id":338600,"date":"2021-09-13T15:27:45","date_gmt":"2021-09-13T12:27:45","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/how-to-use-a-different-private-ssh-key-for-git-shell-commands-cloudsavvy-it\/"},"modified":"2021-09-13T15:27:45","modified_gmt":"2021-09-13T12:27:45","slug":"how-to-use-a-different-private-ssh-key-for-git-shell-commands-cloudsavvy-it","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/how-to-use-a-different-private-ssh-key-for-git-shell-commands-cloudsavvy-it\/","title":{"rendered":"#How to Use a Different Private SSH Key for Git Shell Commands \u2013 CloudSavvy IT"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a2dae68efc33\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a2dae68efc33\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-use-a-different-private-ssh-key-for-git-shell-commands-cloudsavvy-it\/#How_Does_SSH_Work_With_Git\" >How Does SSH Work With Git?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-use-a-different-private-ssh-key-for-git-shell-commands-cloudsavvy-it\/#Making_a_New_SSH_Key\" >Making a New SSH Key<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-use-a-different-private-ssh-key-for-git-shell-commands-cloudsavvy-it\/#Editing_sshconfig\" >Editing\u00a0~\/.ssh\/config<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/how-to-use-a-different-private-ssh-key-for-git-shell-commands-cloudsavvy-it\/#Manually_Overriding\" >Manually Overriding<\/a><\/li><\/ul><\/nav><\/div>\n<p><strong>&#8220;#How to Use a Different Private SSH Key for Git Shell Commands \u2013 CloudSavvy IT&#8221;<\/strong><\/p>\n<div id=\"article-content-area\">\n<img loading=\"lazy\" decoding=\"async\" class=\"type:primaryImage alignnone size-full wp-image-2266\" srcset=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2019\/10\/e713ed70-1.png?width=398&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 400w, https:\/\/www.cloudsavvyit.com\/p\/uploads\/2019\/10\/e713ed70-1.png?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1 1200w\" sizes=\"auto, 400w, 1200w\" src=\"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2019\/10\/e713ed70-1.png?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Git logo\" width=\"700\" height=\"299\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Using SSH keys is more secure than passwords, and that <a href=\"https:\/\/buradabiliyorum.com\/en\/category\/download-scripts-themes-apps\/\" data-internallinksmanager029f6b8e52c=\"9\" title=\"Download Scripts &amp; Themes &amp; Apps\" target=\"_blank\" rel=\"noopener\">app<\/a>lies to Git as well. Unlike a password however, it\u2019s harder to change your SSH key, or manage multiple keys. By editing your SSH config though, you can connect to multiple Git repositories with different keys.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"How_Does_SSH_Work_With_Git\"><\/span>How Does SSH Work With Git?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Git doesn\u2019t just use your private key to authenticate when you use SSH instead of HTTPS\u2014it actually establishes a real SSH connection to the remote server. It does this silently, so you may not be aware of the commands it\u2019s running, but it uses <code>ssh<\/code>\u00a0under the hood.<\/p>\n<p>Because it uses your default <code>ssh<\/code>\u00a0command, it will act like you just ran it yourself, and use your default key in <code>~\/.ssh\/id_rsa<\/code>. This probably isn\u2019t what you want if you\u2019re here reading this, so to change it, you\u2019ll need to edit SSH\u2019s configuration\u2014not Git\u2019s.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Making_a_New_SSH_Key\"><\/span>Making a New SSH Key<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>You\u2019ll need one to do this in the first place, and doing this is pretty easy. Simply run <code>ssh-keygen<\/code>\u00a0and specify a new key name with the <code>-f<\/code>\u00a0flag. This will create a private key and a public key with the <code>.pub<\/code>\u00a0extension.<\/p>\n<pre>ssh-keygen -t rsa -f ~\/.ssh\/github<\/pre>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Editing_sshconfig\"><\/span>Editing\u00a0~\/.ssh\/config<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>SSH\u2019s config file allows setting \u201cHosts\u201d which will match based on what you\u2019re connecting to and allow modification of the file that <code>ssh<\/code> uses.<\/p>\n<pre>Host github&#13;\n  Hostname github.com&#13;\n  IdentityFile ~\/.ssh\/id_rsa.github&#13;\n  IdentitiesOnly yes<\/pre>\n<p>This will let you use a different SSH key than your primary one for all requests going to <code>github.com<\/code>, but what if you want to use two different keys for separate Git repositories? For example, one for your work account, and one for your personal account.<\/p>\n<p>Well, you\u2019ll need to define two configurations with different names, using the same host:<\/p>\n<pre>Host personal&#13;\n  Hostname github.com&#13;\n  IdentityFile ~\/.ssh\/githubpersonal&#13;\n  IdentitiesOnly yes&#13;\n&#13;\nHost work&#13;\n  Hostname github.com&#13;\n  IdentityFile ~\/.ssh\/githubwork&#13;\n  IdentitiesOnly yes<\/pre>\n<p>Usually this would result in a conflicting configuration, but Git provides a way around this. If you have a remote repository like Github linked with your local repo, delete it:<\/p>\n<pre>git remote remove origin<\/pre>\n<p>Then,\u00a0instead of adding <code>github.com<\/code>\u00a0as the remote, replace it with the name of the Host in the SSH configuration file. Git will recognize this, and use this SSH host to connect. You can set separate hosts per-repository.<\/p>\n<pre>git remote add origin git@personal:username\/repository.git<\/pre>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"Manually_Overriding\"><\/span>Manually Overriding<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>If you don\u2019t want to mess with SSH config, or just want to override it temporarily, Git also provides the <code>GIT_SSH_COMMAND<\/code>\u00a0environment variable. You can<\/p>\n<pre>GIT_SSH_COMMAND='ssh -i ~\/.ssh\/github -o UserKnownHostsFile=\/dev\/null -o StrictHostKeyChecking=no'<\/pre>\n<p>Any Git commands you run afterwards in the same shell session will use that SSH command instead of the default one. You can also set an entirely different SSH binary with <code>GIT_SSH<\/code>.\n<\/div>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.cloudsavvyit.com\/14111\/how-to-use-a-different-private-ssh-key-for-git-shell-commands\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;#How to Use a Different Private SSH Key for Git Shell Commands \u2013 CloudSavvy IT&#8221; Using SSH keys is more secure than passwords, and that applies to Git as well. Unlike a password however, it\u2019s harder to change your SSH key, or manage multiple keys. By editing your SSH config though, you can connect to&#8230;<\/p>\n","protected":false},"author":1,"featured_media":338601,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.cloudsavvyit.com\/p\/uploads\/2019\/10\/e713ed70-1.png","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-338600","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/338600","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=338600"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/338600\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/338601"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=338600"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=338600"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=338600"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}