www.digitalocean.com Open in urlscan Pro
2606:4700::6813:ad44  Public Scan

URL: https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys-on-ubuntu-20-04-es
Submission: On July 31 via api from LU — Scanned from US

Form analysis 2 forms found in the DOM

<form class="CommentFormTemplateStyles__StyledForm-sc-f4f7f538-0 lkkMSZ">
  <div class="MarkdownStyles__StyledContainer-sc-dccc8dc1-0 ebktLt"><input type="text" required="" style="height:0;width:0;opacity:0;padding:0;border:0;position:absolute" tabindex="-1" aria-hidden="true" value="">
    <div class="MarkdownStyles__StyledActions-sc-dccc8dc1-1 kLYtvS"><button type="button" title="Bold" aria-label="Bold" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 fiPwPn"><svg height="24" viewBox="0 0 24 24" width="24"
          xmlns="http://www.w3.org/2000/svg">
          <path
            d="m12.4799 4.625c1.0333 0 1.88.14333 2.54.43.6667.28667 1.16.7 1.48 1.24.32.53333.48 1.16333.48 1.89s-.1433 1.34667-.43 1.86c-.2867.5067-.65.9-1.09 1.18-.44.2733-.8867.4267-1.34.46.4733.0133.96.1367 1.46.37.5.2267.92.5967 1.26 1.11.34.5067.51 1.1833.51 2.03 0 .8-.1633 1.5167-.49 2.15-.32.6267-.8367 1.1233-1.55 1.49-.7133.36-1.6667.54-2.86.54h-5.8v-14.75zm-2.86 6.83-1.03-.87h2.94c.7867 0 1.3767-.1667 1.77-.5.3933-.34.59-.79667.59-1.37 0-.38667-.0833-.70333-.25-.95-.1667-.25333-.4133-.44-.74-.56s-.73-.18-1.21-.18h-3.47l1.4-1.48zm2.23 5.51c.76 0 1.3367-.1733 1.73-.52.4-.3533.6-.83.6-1.43 0-.34-.06-.6367-.18-.89-.1133-.2533-.2767-.4633-.49-.63-.2133-.1733-.4733-.3033-.78-.39-.3-.0933-.6333-.14-1-.14h-3.14l1.03-.86v6.34l-1.4-1.48z"
            fill="currentColor"></path>
        </svg></button><button type="button" title="Italic" aria-label="Italic" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 fiPwPn"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
          <path d="m6.93994 19.3002.26-1.64h2.97996l1.8-11.32h-2.97996l.26-1.64h7.79996l-.26 1.64h-2.98l-1.8 11.32h2.98l-.26 1.64z" fill="currentColor"></path>
        </svg></button><button type="button" title="Underline" aria-label="Underline" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 fiPwPn"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
          <g fill="currentColor" stroke="currentColor" stroke-width=".5">
            <path
              d="m16.104 12.0476c0 1.5307-.3573 2.6667-1.072 3.408-.7147.736-1.7093 1.104-2.984 1.104-1.2693 0-2.26133-.368-2.976-1.104-.71467-.7413-1.072-1.8773-1.072-3.408 0-.2347 0-.4827 0-.744 0-.2667 0-.5467 0-.84v-5.86399h1.368v5.98399.776.664c0 1.184.22667 2.032.68 2.544.4533.5067 1.12.76 2 .76.8853 0 1.5547-.2533 2.008-.76.4587-.512.688-1.36.688-2.544v-7.42399h1.36z">
            </path>
            <path clip-rule="evenodd" d="m7 18.8994c0-.2761.2132-.5.47619-.5h9.04761c.263 0 .4762.2239.4762.5 0 .2762-.2132.5-.4762.5h-9.04761c-.26299 0-.47619-.2238-.47619-.5z" fill-rule="evenodd"></path>
          </g>
        </svg></button><button type="button" title="Strikethrough" aria-label="Strikethrough" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 fiPwPn"><svg height="24" viewBox="0 0 24 24" width="24"
          xmlns="http://www.w3.org/2000/svg">
          <g fill="currentColor">
            <path clip-rule="evenodd" d="m5 11.9346c0-.2762.19588-.5.4375-.5h13.125c.2416 0 .4375.2238.4375.5 0 .2761-.1959.5-.4375.5h-13.125c-.24162 0-.4375-.2239-.4375-.5z" fill-rule="evenodd"></path>
            <path
              d="m12.0006 19.5646c-1.02 0-1.8933-.16-2.61997-.48-.72-.3267-1.27334-.8167-1.66-1.47-.38667-.6534-.58001-1.4667-.58001-2.44v-.68h1.71001v.65c0 1.02.26666 1.7566.8 2.21.53337.4466 1.30997.67 2.32997.67 1.0534 0 1.85-.18 2.39-.54s.81-.9434.81-1.75c0-.5667-.1566-1.0367-.47-1.41-.2797-.3466-.6592-.6433-1.1385-.89h2.6353c.0468.0652.0912.1319.1332.2.34.54.51 1.22.51 2.04s-.1966 1.52-.59 2.1c-.3866.58-.9433 1.0233-1.67 1.33-.72.3066-1.5833.46-2.59.46z">
            </path>
            <path
              d="m7.80063 10.2446c.04249.0645.08671.1278.13266.19h2.54991c-.4493-.2411-.81352-.52111-1.09258-.84003-.31999-.38-.47999-.86-.47999-1.44 0-.77333.26333-1.33.79-1.67s1.27337-.51 2.23997-.51c1.0067 0 1.7734.20667 2.3.62.5267.40667.79 1.09667.79 2.07v.68h1.71v-.75c0-.93333-.2-1.70667-.6-2.32-.3933-.62-.9533-1.08-1.68-1.38-.72-.30667-1.57-.46-2.55-.46-.9266 0-1.74.14333-2.43997.43-.7.28667-1.24667.70667-1.64 1.26-.38667.55333-.58 1.23-.58 2.03 0 .82.18333 1.51667.55 2.09003z">
            </path>
          </g>
        </svg></button><button type="button" title="Link" aria-label="Link" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 fiPwPn"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
          <path
            d="m17.906 6.65242c-.5458-.62654-1.5313-.66515-2.1882.02623l-6.43176 6.76875c-.16633.1751-.16633.3981 0 .5731.16633.1751.37821.1751.54454 0l5.32012-5.59886c.3101-.32634.8128-.32634 1.1229 0s.3101.85545 0 1.1818l-5.3201 5.59886c-.7865.8278-2.00389.8278-2.79041 0-.78652-.8277-.78652-2.1089 0-2.9366l6.43171-6.76885c1.2447-1.30991 3.2674-1.35254 4.4701.01279 1.2325 1.31066 1.2688 3.42899-.0234 4.69066l-7.5321 7.9268c-1.73941 1.8305-4.4655 1.8305-6.20487 0s-1.73937-4.6995 0-6.53l6.43177-6.76877c.3101-.32634.8128-.32634 1.1229 0s.3101.85545 0 1.18179l-6.43172 6.76878c-1.11919 1.1779-1.11919 2.9886 0 4.1664 1.11918 1.1779 2.83975 1.1779 3.95892 0l7.5434-7.9387c.0082-.00856.0165-.01693.025-.02511.5953-.57433.632-1.61147-.025-2.30284-.0081-.00856-.0161-.01731-.0238-.02623z"
            fill="currentColor"></path>
        </svg></button><button type="button" title="Image" aria-label="Image" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 fiPwPn"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
          <g fill="currentColor">
            <path
              d="M5 4.75C4.22416 4.75 3.75 5.29076 3.75 5.77778V18.2222C3.75 18.7092 4.22416 19.25 5 19.25H19C19.7758 19.25 20.25 18.7092 20.25 18.2222V5.77778C20.25 5.29076 19.7758 4.75 19 4.75H5ZM2.25 5.77778C2.25 4.30112 3.5667 3.25 5 3.25H19C20.4333 3.25 21.75 4.30112 21.75 5.77778V18.2222C21.75 19.6989 20.4333 20.75 19 20.75H5C3.5667 20.75 2.25 19.6989 2.25 18.2222V5.77778Z">
            </path>
            <path
              d="M7.5 7.75C7.08579 7.75 6.75 8.08579 6.75 8.5C6.75 8.91421 7.08579 9.25 7.5 9.25C7.91421 9.25 8.25 8.91421 8.25 8.5C8.25 8.08579 7.91421 7.75 7.5 7.75ZM5.25 8.5C5.25 7.25736 6.25736 6.25 7.5 6.25C8.74264 6.25 9.75 7.25736 9.75 8.5C9.75 9.74264 8.74264 10.75 7.5 10.75C6.25736 10.75 5.25 9.74264 5.25 8.5Z">
            </path>
            <path
              d="M15.4697 10.4697C15.7626 10.1768 16.2374 10.1768 16.5303 10.4697L21.5303 15.4697C21.8232 15.7626 21.8232 16.2374 21.5303 16.5303C21.2374 16.8232 20.7626 16.8232 20.4697 16.5303L16 12.0607L7.53033 20.5303C7.23744 20.8232 6.76256 20.8232 6.46967 20.5303C6.17678 20.2374 6.17678 19.7626 6.46967 19.4697L15.4697 10.4697Z">
            </path>
          </g>
        </svg></button><button type="button" title="Highlight" aria-label="Highlight" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 fiPwPn"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
          <g fill="currentColor">
            <rect height="2" rx=".5" width="13" x="5.5" y="17.5"></rect>
            <path clip-rule="evenodd"
              d="m17.0364 5.96101c-.3515-.35085-.9213-.35085-1.2728 0l-.4757.4749 1.2728 1.27053.4757-.47489c.3515-.35085.3515-.91969 0-1.27054zm-1.3243 2.59246-1.2728-1.27054-6.7393 6.72737v1.2918h1.25148zm-.797-3.43948c.8201-.81865 2.1497-.81865 2.9698 0s.8201 2.14594 0 2.96459l-8.26063 8.24602c-.11252.1123-.26513.1754-.42426.1754h-2.10001c-.33137 0-.6-.2682-.6-.5989v-2.1389c0-.1588.06321-.3112.17574-.4235z"
              fill-rule="evenodd"></path>
          </g>
        </svg></button><button type="button" title="Heading 1" aria-label="Heading 1" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 fiPwPn"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
          <g fill="currentColor">
            <path d="m14.5439 4.5v13.209h-1.9432v-6.5642l.8776.788h-7.28958l.87761-.7791v6.5553h-1.94328v-13.209h1.94328v6.6269l-.87761-.815h7.28958l-.8776.815v-6.6269z"></path>
            <path
              d="m18.8765 11.5537v7.9469h-1.1606v-6.7648c-.0322.0394-.1236.0896-.274.1504-.1505.0609-.3332.12-.5481.1774-.2149.0537-.4406.0931-.677.1182v-.9887c.2328-.0358.4567-.0895.6716-.1612.215-.0716.3977-.1504.5481-.2364.154-.086.2561-.1666.3063-.2418z">
            </path>
          </g>
        </svg></button><button type="button" title="Heading 2" aria-label="Heading 2" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 fiPwPn"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
          <g fill="currentColor">
            <path d="m13.4506 4.5v13.2088h-1.9433v-6.5641l.8776.7881h-7.28945l.8776-.7791v6.5551h-1.94326v-13.2088h1.94326v6.6268l-.8776-.8149h7.28945l-.8776.8149v-6.6268z"></path>
            <path
              d="m15.0752 19.5001v-.9833c.0287-.1326.1164-.2937.2633-.4836.1469-.1934.326-.3994.5373-.6179s.4334-.437.6663-.6555c.2364-.2185.4567-.4191.6609-.6018.2507-.2293.4961-.4657.7361-.7093.24-.2471.4388-.5068.5964-.7791.1612-.2758.2418-.5659.2418-.8704 0-.4298-.1021-.7612-.3063-.994-.2006-.2364-.5069-.3546-.9188-.3546-.3295 0-.5928.0698-.7898.2095-.1971.1397-.3385.3367-.4245.591-.086.2508-.129.5445-.129.8812h-1.1713c0-.5337.0931-.9994.2794-1.397.1898-.4012.4728-.711.8489-.9295.3762-.2221.8436-.3331 1.4024-.3331.5266 0 .9654.1003 1.3164.3008.3547.2006.6197.4765.7952.8275.1792.351.2687.754.2687 1.209 0 .3008-.0573.5892-.1719.865-.1111.2723-.2579.5284-.4406.7684-.1791.24-.3726.4621-.5803.6662-.2078.2042-.4048.3887-.5911.5535-.3044.265-.5838.5158-.8382.7522-.2507.2328-.4585.4442-.6232.634-.1612.1863-.2597.3439-.2956.4729h3.5624v.9779z">
            </path>
          </g>
        </svg></button><button type="button" title="Heading 3" aria-label="Heading 3" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 fiPwPn"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
          <g fill="currentColor">
            <path d="m13.4184 4.5v13.1102h-1.9288v-6.5151l.871.7822h-7.23502l.87105-.7733v6.5062h-1.92876v-13.1102h1.92876v6.5773l-.87105-.8088h7.23502l-.871.8088v-6.5773z"></path>
            <path
              d="m18.5668 15.2446c.3128.0107.5688.0996.7679.2667.2027.1635.352.3822.448.6559.0995.2703.1493.5707.1493.9013 0 .4515-.0853.8622-.256 1.2319-.1706.3662-.4337.6578-.7893.8746-.3519.2169-.8035.3254-1.3545.3254-.4587 0-.8462-.0605-1.1626-.1814-.3165-.1244-.5707-.2986-.7626-.5226-.1885-.2275-.3271-.4977-.416-.8106-.0853-.3129-.128-.6577-.128-1.0346 0-.0036 0-.0071 0-.0107 0-.0035 0-.0071 0-.0106h1.1626v.0106.0107c0 .416.0515.7395.1546.9706.1067.2311.2578.3929.4533.4853.1991.0889.4373.1333.7147.1333.3733 0 .6684-.1209.8852-.3626.2205-.2453.3307-.624.3307-1.1359 0-.1849-.0196-.3574-.0587-.5173-.0355-.16-.1013-.2987-.1973-.416-.096-.1209-.2293-.2151-.4-.2827-.1671-.0711-.3822-.1066-.6453-.1066h-.288v-.88h.288c.256 0 .4676-.0337.6347-.1013.1706-.0711.3039-.1653.3999-.2826.096-.1209.1636-.2542.2027-.4.0426-.1493.064-.3022.064-.4586 0-.4267-.1085-.7342-.3253-.9227-.2169-.1884-.5084-.2826-.8746-.2826-.4018 0-.7253.1067-.9706.32-.2454.2133-.368.6008-.368 1.1626h-1.1626c0-.352.048-.6773.144-.976.0995-.2986.2489-.5582.4479-.7786.2027-.224.4605-.3964.7733-.5173.3129-.1209.6844-.1813 1.1146-.1813.5475 0 .9973.096 1.3493.288.3519.192.6133.4479.7839.7679.1707.32.256.6738.256 1.0613 0 .2951-.0498.5706-.1493.8266-.096.2524-.2453.4586-.448.6186-.1991.16-.4551.2471-.7679.2613z">
            </path>
          </g>
        </svg></button><button type="button" title="Unordered list" aria-label="Unordered list" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 fiPwPn"><svg height="24" viewBox="0 0 24 24" width="24"
          xmlns="http://www.w3.org/2000/svg">
          <path
            d="m4.25 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zm3 1.5c0 .5523.44772 1 1 1h12c.5523 0 1-.4477 1-1s-.4477-1-1-1h-12c-.55228 0-1 .4477-1 1zm0-6c0 .5523.44772 1 1 1h12c.5523 0 1-.4477 1-1s-.4477-1-1-1h-12c-.55228 0-1 .4477-1 1zm1-7c-.55228 0-1 .44772-1 1s.44772 1 1 1h12c.5523 0 1-.44772 1-1s-.4477-1-1-1z"
            fill="currentColor"></path>
        </svg></button><button type="button" title="Ordered list" aria-label="Ordered list" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 fiPwPn"><svg height="24" viewBox="0 0 24 24" width="24"
          xmlns="http://www.w3.org/2000/svg">
          <g fill="currentColor">
            <path d="m4.365 4.48535v2.958h-.432v-2.518c-.012.01467-.046.03334-.102.056-.056.02267-.124.04467-.204.066-.08.02-.164.03467-.252.044v-.368c.08667-.01333.17-.03333.25-.06s.148-.056.204-.088c.05733-.032.09533-.062.114-.09z"></path>
            <path
              d="m3.389 13.4734v-.366c.01067-.0494.04333-.1094.098-.18.05467-.072.12133-.1487.2-.23.07867-.0814.16133-.1627.248-.244.088-.0814.17-.156.246-.224.09333-.0854.18467-.1734.274-.264.08933-.092.16333-.1887.222-.29.06-.1027.09-.2107.09-.324 0-.16-.038-.2834-.114-.37-.07467-.088-.18867-.132-.342-.132-.12267 0-.22067.026-.294.078s-.126.1253-.158.22c-.032.0933-.048.2026-.048.328h-.436c0-.1987.03467-.372.104-.52.07067-.1494.176-.2647.316-.346.14-.0827.314-.124.522-.124.196 0 .35933.0373.49.112.132.0746.23067.1773.296.308.06667.1306.1.2806.1.45 0 .112-.02133.2193-.064.322-.04133.1013-.096.1966-.164.286-.06667.0893-.13867.172-.216.248s-.15067.1446-.22.206c-.11333.0986-.21733.192-.312.28-.09333.0866-.17067.1653-.232.236-.06.0693-.09667.128-.11.176h1.326v.364z">
            </path>
            <path
              d="m4.689 17.9194c.11733.004.21333.0373.288.1.076.0613.132.1433.168.246.03733.1013.056.214.056.338 0 .1693-.032.3233-.096.462-.064.1373-.16267.2466-.296.328-.132.0813-.30133.122-.508.122-.172 0-.31733-.0227-.436-.068-.11867-.0467-.214-.112-.286-.196-.07067-.0854-.12267-.1867-.156-.304-.032-.1174-.048-.2467-.048-.388 0-.0014 0-.0027 0-.004 0-.0014 0-.0027 0-.004h.436v.004.004c0 .156.01933.2773.058.364.04.0866.09667.1473.17.182.07467.0333.164.05.268.05.14 0 .25067-.0454.332-.136.08267-.092.124-.234.124-.426 0-.0694-.00733-.134-.022-.194-.01333-.06-.038-.112-.074-.156-.036-.0454-.086-.0807-.15-.106-.06267-.0267-.14333-.04-.242-.04h-.108v-.33h.108c.096 0 .17533-.0127.238-.038.064-.0267.114-.062.15-.106.036-.0454.06133-.0954.076-.15.016-.056.024-.1134.024-.172 0-.16-.04067-.2754-.122-.346-.08133-.0707-.19067-.106-.328-.106-.15067 0-.272.04-.364.12s-.138.2253-.138.436h-.436c0-.132.018-.254.054-.366.03733-.112.09333-.2094.168-.292.076-.084.17267-.1487.29-.194.11733-.0454.25667-.068.418-.068.20533 0 .374.036.506.108s.23.168.294.288.096.2526.096.398c0 .1106-.01867.214-.056.31-.036.0946-.092.172-.168.232-.07467.06-.17067.0926-.288.098z">
            </path>
            <path
              d="m6.625 17.9854c0 .5522.44772 1 1 1h12c.5523 0 1-.4478 1-1 0-.5523-.4477-1-1-1h-12c-.55228 0-1 .4477-1 1zm0-6c0 .5522.44772 1 1 1h12c.5523 0 1-.4478 1-1 0-.5523-.4477-1-1-1h-12c-.55228 0-1 .4477-1 1zm1-7.00005c-.55228 0-1 .44772-1 1 0 .55229.44772 1 1 1h12c.5523 0 1-.44771 1-1 0-.55228-.4477-1-1-1z">
            </path>
          </g>
        </svg></button><button type="button" title="Quote" aria-label="Quote" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 fiPwPn"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
          <g fill="currentColor">
            <path
              d="m9.45529 9.8724c.86271 0 1.44511.6551 1.44511 1.6257 0 .8736-.6686 1.6015-1.57452 1.6015-.99216 0-1.72549-.8735-1.72549-2.2081 0-3.03307 2.02745-4.2463 3.30001-4.39189v1.33456c-.8628.16985-1.83334 1.11618-1.87648 2.15956.04314-.02427.21569-.12133.43137-.12133z">
            </path>
            <path
              d="m5.05529 9.8724c.86275 0 1.4451.6551 1.4451 1.6257 0 .8736-.66863 1.6015-1.57451 1.6015-.99216 0-1.72549-.8735-1.72549-2.2081 0-3.03307 2.02745-4.2463 3.3-4.39189v1.33456c-.86275.16985-1.83333 1.11618-1.87647 2.15956.04314-.02427.21569-.12133.43137-.12133z">
            </path>
            <path
              d="m14.5447 14.1276c-.8627 0-1.4451-.6551-1.4451-1.6257 0-.8736.6686-1.6015 1.5745-1.6015.9922 0 1.7255.8735 1.7255 2.2081 0 3.0331-2.0274 4.2463-3.3 4.3919v-1.3346c.8628-.1698 1.8333-1.1161 1.8765-2.1595-.0432.0242-.2157.1213-.4314.1213z">
            </path>
            <path
              d="m18.9447 14.1276c-.8627 0-1.4451-.6551-1.4451-1.6257 0-.8736.6686-1.6015 1.5745-1.6015.9922 0 1.7255.8735 1.7255 2.2081 0 3.0331-2.0274 4.2463-3.3 4.3919v-1.3346c.8628-.1698 1.8333-1.1161 1.8765-2.1595-.0432.0242-.2157.1213-.4314.1213z">
            </path>
          </g>
        </svg></button><button type="button" title="Callout" aria-label="Callout" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 fiPwPn"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
          <g fill="currentColor">
            <path d="m12 6c-3.31371 0-6 2.68629-6 6 0 3.3137 2.68629 6 6 6 3.3137 0 6-2.6863 6-6 0-3.31371-2.6863-6-6-6zm-7.5 6c0-4.14214 3.35786-7.5 7.5-7.5 4.1421 0 7.5 3.35786 7.5 7.5 0 4.1421-3.3579 7.5-7.5 7.5-4.14214 0-7.5-3.3579-7.5-7.5z">
            </path>
            <path d="m12 10.5c.4142 0 .75.3358.75.75v4.5c0 .4142-.3358.75-.75.75s-.75-.3358-.75-.75v-4.5c0-.4142.3358-.75.75-.75z"></path>
            <path d="m13.125 8.625c0 .62132-.5037 1.125-1.125 1.125s-1.125-.50368-1.125-1.125.5037-1.125 1.125-1.125 1.125.50368 1.125 1.125z"></path>
          </g>
        </svg></button><button type="button" title="Table" aria-label="Table" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 fiPwPn"><svg fill="none" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
          <mask id="a" fill="#fff">
            <rect fill="#fff" height="7" rx="1" width="7" x="4.5" y="4.5"></rect>
          </mask>
          <mask id="b" fill="#fff">
            <rect fill="#fff" height="7" rx="1" width="7" x="4.5" y="12.5"></rect>
          </mask>
          <mask id="c" fill="#fff">
            <rect fill="#fff" height="7" rx="1" width="7" x="12.5" y="4.5"></rect>
          </mask>
          <mask id="d" fill="#fff">
            <rect fill="#fff" height="7" rx="1" width="7" x="12.5" y="12.5"></rect>
          </mask>
          <g stroke="currentColor" stroke-linejoin="round" stroke-width="2.4">
            <rect height="7" mask="url(#a)" rx="1" width="7" x="4.5" y="4.5"></rect>
            <rect height="7" mask="url(#b)" rx="1" width="7" x="4.5" y="12.5"></rect>
            <rect height="7" mask="url(#c)" rx="1" width="7" x="12.5" y="4.5"></rect>
            <rect height="7" mask="url(#d)" rx="1" width="7" x="12.5" y="12.5"></rect>
          </g>
        </svg></button><button type="button" title="Code" aria-label="Code" disabled="" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 fiPwPn"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
          <g fill="currentColor">
            <path
              d="m9.87254 6.52426c.29756.31879.29756.83567 0 1.15447l-4.03273 4.32077 4.03273 4.3208c.29756.3188.29756.8357 0 1.1545-.29754.3188-.77996.3188-1.07751 0l-4.57148-4.8981c-.29755-.3188-.29755-.8356 0-1.1544l4.57148-4.89804c.29755-.3188.77997-.3188 1.07751 0z">
            </path>
            <path
              d="m14.1275 17.4748c-.2976-.3188-.2976-.8357 0-1.1545l4.0327-4.3208-4.0327-4.32077c-.2976-.3188-.2976-.83567 0-1.15447.2975-.3188.7799-.3188 1.0775 0l4.5714 4.89804c.2976.3188.2976.8356 0 1.1544l-4.5714 4.8981c-.2976.3188-.78.3188-1.0775 0z">
            </path>
          </g>
        </svg></button>
      <div class="MarkdownStyles__StyledActionsRight-sc-dccc8dc1-2 hkHVmw"><button type="button" disabled="" title="Preview" aria-label="Preview" class="MarkdownStyles__StyledActionButton-sc-dccc8dc1-3 fiPwPn"><svg height="24" viewBox="0 0 24 24"
            width="24" xmlns="http://www.w3.org/2000/svg">
            <path clip-rule="evenodd"
              d="m3.37993 12.6358c-.1925-.2497-.35068-.466-.47127-.6358.12059-.1698.27877-.3861.47127-.6358.49035-.6359 1.1985-1.48178 2.07052-2.32506 1.7738-1.71533 4.09082-3.28914 6.54965-3.28914 2.4589 0 4.7759 1.57381 6.5497 3.28914.8721.84328 1.5802 1.68916 2.0706 2.32506.1925.2497.3506.466.4712.6358-.1206.1698-.2787.3861-.4712.6358-.4904.6359-1.1985 1.4818-2.0706 2.3251-1.7738 1.7153-4.0908 3.2891-6.5497 3.2891-2.45883 0-4.77585-1.5738-6.54965-3.2891-.87202-.8433-1.58017-1.6892-2.07052-2.3251zm19.25177-1.0403c.0001.0002.0003.0004-.6316.4045.6319.4041.6317.4043.6316.4045l-.0004.0006-.001.0017-.0034.0052-.0116.0178c-.0099.0152-.0241.0368-.0425.0645-.0368.0553-.0905.1348-.1602.2349-.1394.2002-.343.4836-.6044.8225-.5217.6766-1.278 1.5807-2.2156 2.4874-1.8455 1.7847-4.5285 3.7109-7.5925 3.7109-3.06392 0-5.7469-1.9262-7.59239-3.7109-.93763-.9067-1.69394-1.8108-2.21565-2.4874-.26133-.3389-.465-.6223-.60434-.8225-.0697-.1001-.12338-.1796-.1602-.2349-.01842-.0277-.03263-.0493-.04253-.0645l-.0116-.0178-.00335-.0052-.00106-.0017-.00038-.0006c-.00014-.0002-.00027-.0004.63155-.4045-.63182-.4041-.63169-.4043-.63155-.4045l.00038-.0006.00106-.0017.00335-.0052.0116-.0178c.0099-.0152.02411-.0368.04253-.0645.03682-.0553.0905-.1348.1602-.2349.13934-.2002.34301-.4836.60434-.8225.52171-.67661 1.27802-1.58072 2.21565-2.48744 1.84549-1.78467 4.52847-3.71086 7.59239-3.71086 3.064 0 5.747 1.92619 7.5925 3.71086.9376.90672 1.6939 1.81083 2.2156 2.48744.2614.3389.465.6223.6044.8225.0697.1001.1234.1796.1602.2349.0184.0277.0326.0493.0425.0645l.0116.0178.0034.0052.001.0017zm-.6316.4045.6319-.4041.2584.4041-.2584.4041zm-20.63177-.4041.63182.4041-.63182.4041-.25847-.4041zm7.38182.4041c0-1.7949 1.45505-3.25 3.24995-3.25 1.795 0 3.25 1.4551 3.25 3.25s-1.455 3.25-3.25 3.25c-1.7949 0-3.24995-1.4551-3.24995-3.25zm3.24995-4.75c-2.6233 0-4.74995 2.12665-4.74995 4.75 0 2.6234 2.12665 4.75 4.74995 4.75 2.6234 0 4.75-2.1266 4.75-4.75 0-2.62335-2.1266-4.75-4.75-4.75z"
              fill="currentColor" fill-rule="evenodd"></path>
          </svg></button><a class="LazyLink___StyledLink-sc-679fc0ad-0 kGReYa MarkdownStyles__StyledActionLink-sc-dccc8dc1-4 dHuakO" target="_blank" title="Help" aria-label="Help" href="/community/markdown"><svg height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><g fill="currentColor"><path d="m12 6c-3.31371 0-6 2.68629-6 6 0 3.3137 2.68629 6 6 6 3.3137 0 6-2.6863 6-6 0-3.31371-2.6863-6-6-6zm-7.5 6c0-4.14214 3.35786-7.5 7.5-7.5 4.1421 0 7.5 3.35786 7.5 7.5 0 4.1421-3.3579 7.5-7.5 7.5-4.14214 0-7.5-3.3579-7.5-7.5z"></path><path d="m11.1951 13.8881v-.0817c.0054-.5327.0554-.9565.15-1.2716.0973-.315.2352-.5699.4136-.7646.1784-.1948.3934-.3723.6448-.5327.1622-.1089.3082-.2306.4379-.3652.1298-.1346.2325-.2892.3082-.4639s.1136-.3681.1136-.58c0-.25489-.0568-.47542-.1703-.66157-.1136-.18616-.265-.32936-.4542-.4296-.1866-.1031-.3947-.15465-.6245-.15465-.2082 0-.4069.04582-.5961.13747-.1893.09165-.3461.23484-.4704.42959-.1244.19189-.196.43962-.2149.7432h-1.2328c.01892-.51551.14193-.95084.36902-1.30597.22708-.35799.52718-.62864.90028-.81193.3757-.18329.7907-.27494 1.2449-.27494.4974 0 .9327.09881 1.3058.29642.373.19475.6623.46826.8678.82053.2081.3494.3122.75751.3122 1.22434 0 .32081-.0473.61001-.1419.86781-.0947.2549-.2298.4825-.4055.683-.1731.2005-.3812.3781-.6245.5327-.2298.1518-.4164.3093-.5596.4726-.1406.1632-.2434.3565-.3082.5799-.0649.2234-.1001.4998-.1055.8291v.0817zm.6123 2.6119c-.2217 0-.4123-.0831-.5718-.2492-.1595-.1689-.2392-.3723-.2392-.61 0-.2348.0797-.4353.2392-.6014.1595-.169.3501-.2535.5718-.2535.219 0 .4082.0845.5677.2535.1622.1661.2433.3666.2433.6014 0 .1575-.0378.3022-.1135.4339-.073.1289-.1703.232-.292.3093s-.2568.116-.4055.116z"></path></g></svg></a>
      </div>
    </div>
    <div class="MarkdownStyles__StyledWrapper-sc-dccc8dc1-5 bZrnFw">
      <div class="MarkdownStyles__StyledSlateEditableWrapper-sc-dccc8dc1-6 ekNUQm">
        <div id="input-:Rqd96iel6:" class="MarkdownStyles__StyledSlateEditable-sc-dccc8dc1-8 dBCBEH" data-slate-editor="true" data-slate-node="value" contenteditable="false" zindex="-1"
          style="position: relative; white-space: pre-wrap; overflow-wrap: break-word; min-height: 24px;">
          <div data-slate-node="element" style="position:relative"><span data-slate-node="text"><span data-slate-leaf="true" data-slate-obj="{&quot;text&quot;:&quot;&quot;,&quot;placeholder&quot;:&quot;Leave a comment...&quot;}"
                class="MarkdownStyles__StyledSlateLeaf-sc-dccc8dc1-9 kmkjRa"><span data-slate-placeholder="true" contenteditable="false"
                  style="position: absolute; top: 0px; pointer-events: none; width: 100%; max-width: 100%; display: block; opacity: 0.333; user-select: none; text-decoration: none; -webkit-user-modify: inherit;">Leave a comment...</span><span
                  data-slate-zero-width="n" data-slate-length="0"><br></span></span></span></div>
        </div>
      </div>
    </div>
  </div>
</form>

<form class="TechTalkRegistrationModalTemplateStyles__StyledForm-sc-8b89ec4f-1 fWYlZF">
  <div class="alert alert-success alert-hidden"><strong>Success!</strong> <!-- -->Thank you! Please check your email for further details.</div>
  <p>Please complete your information!</p><input placeholder="user@digitalocean.com" required="" type="email" class="TechTalkRegistrationModalTemplateStyles__StyledFormInput-sc-8b89ec4f-2 dzBAlq" value=""><input placeholder="First Name" required=""
    type="text" class="TechTalkRegistrationModalTemplateStyles__StyledFormInput-sc-8b89ec4f-2 dzBAlq" value=""><input placeholder="Last Name" required="" type="text"
    class="TechTalkRegistrationModalTemplateStyles__StyledFormInput-sc-8b89ec4f-2 dzBAlq" value=""><input type="submit" class="TechTalkRegistrationModalTemplateStyles__StyledSubmit-sc-8b89ec4f-3 dYmKki" value="Sign up">
</form>

Text Content

Now Available: Premium Memory-Optimized and Premium Storage-Optimized Droplets
for Faster Networking Performance

Managed OpenSearch is now available as a DigitalOcean Managed Database. Learn
more

Learn how to choose the right app deployment platform for your web apps. Read
more

GPU Droplets: Now available in early availability, try them here

Select DigitalOcean products can now be used to host electronic Protected Health
Information! Learn more

 * Blog
 * Docs
 * Get Support
 * Contact Sales

DigitalOcean

 * Products
   
    * Featured Products
      
      * Droplets
        Scalable virtual machines
      * Kubernetes
        Scalable virtual machines
      * Paperspace
        Build and scale AI models
      * Cloudways
        Managed cloud hosting
      * App Platform
        Get apps to market faster
   
    * Compute
      
       * Droplets
       * Kubernetes
       * CPU-Optimized Droplets
       * Functions
       * App Platform
       * GPUs
      
      Backups & Snapshots
      
       * Backups
       * Snapshots
       * SnapShooter
      
      Storage
      
       * Spaces Object Storage
       * Volume Block Storage
      
      Networking
      
       * Virtual Private Cloud (VPC)
       * Cloud Firewalls
       * Load Balancers
       * DNS
       * DDoS Protection
      
      Managed Databases
      
       * MongoDB
       * Kafka
       * MySQL
       * PostgreSQL
       * Managed Databases for Redis®
       * OpenSearch
      
      Developer Tools
      
       * API
       * CLI
       * Support Plans
       * Monitoring
       * Uptime
      
      AI/ML
      
       * Paperspace
      
      Cloud Website Hosting
      
       * Cloudways
   
   See all products
 * Solutions
    *  * AI and Machine LearningDevelop, train, and deploy AI apps
         * GPUs
         * Notebook IDE
       * BlockchainInfrastructure for decentralized apps
       * Blogs, Forums and Content WebsitesLightning-fast, reliable CMS hosting
         * Wordpress
         * Ghost
         * Mastodon
       * Data AnalyticsReal-time data processing at scale
         * Data Streaming
         * AdTech & Martech
       * Developer ToolsDevOps and CI/CD solutions
         * CI/CD
         * Prototyping
       * Digital Marketing AgenciesPower your clients’ websites and campaigns
         * Freelancer
         * IT Consulting
       * EcommerceBuild beautiful online storefronts
         * Dropshipping
         * WooCommerce
         * Magento
       * Game DevelopmentLow-latency multiplayer servers
         * Minecraft Hosting
       * IOTConnect to the power of the cloud
       * ISVsStreamlined ISV application development
       * Secure Web HostingPowerful protection from DDoS and more
         * Private VPN
       * Startup Cloud HostingScalable, cost-effective infrastructure
         * Small Business
       * Video StreamingHigh-bandwidth, low-latency delivery
       * Web and Mobile AppsSimple cross-platform app hosting
         * cPanel
         * Docker
         * Next.js
         * Node.js
       * Website HostingFast page loads and reliable site uptime
         * VPS Hosting
         * Virtual Machines
      
      Questions?
      
       * Talk to an expert
   
   See all solutions
 * Developers
   
    * Our Community
      
      * Community Home
        DevOps and development guides
      * CSS-Tricks
        All things web design
      * The Wave
        Content to level up your business.
   
    * Resources
      
       * Tutorials
       * Questions and Answers
       * Marketplace
       * Tools
       * Write for DOnations
       * Customer Stories
       * DigitalOcean Blog
       * Pricing Calculator
      
      Get Involved
      
       * Hatch Startup Program
       * Open Source Sponsorships
       * Hacktoberfest
       * Deploy 2024
       * DO Impact
       * Nonprofits
      
      Documentation
      
       * Quickstart
       * Compute
       * Storage
       * Managed Databases
       * Containers
       * Billing
       * API Reference

 * Partners
   
    * Grow Your Business
      
      * Find a partner
        Work with a partner to get up and running in the cloud.
      * Become a partner
        Join our Partner Pod to connect with SMBs and startups like yours.
      * Partner Services Program
        Service Program benefits and funding framework.
   
    * Resources
      
       * Customer Stories
       * Hatch Startup Program
       * Price Estimate Calculator
       * Marketplace
       * Security
       * Training for Agencies & Freelancers
      
      Featured Articles
      
       * Cloud cost optimization best practices
         
         Read more
      
       * How to choose a cloud provider
         
         Read more
      
       * Understanding cash flow vs. profit
         
         Read more
      
      Questions?
      
       * Talk to an expert

 * Pricing

 * Log in
   * Log in to:
   * Community
   * DigitalOcean
 * Sign up
   * Sign up for:
   * Community
   * DigitalOcean

 * Blog
 * Docs
 * Get Support
 * Contact Sales


 * Log in
   * Log in to:
   * Community
   * DigitalOcean
 * Sign up
   * Sign up for:
   * Community
   * DigitalOcean


 * Tutorials
 * Questions
 * Learning Paths
 * For Businesses
 * Product Docs
 * Social Impact
 * Search Community


CONTENTS


 1. PASO 1: CREAR EL PAR DE CLAVES


 2. PASO 2: COPIAR LA CLAVE PÚBLICA AL SERVIDOR UBUNTU


 3. PASO 3: AUTENTICACIÓN EN EL SERVIDOR DE UBUNTU CON CLAVES DE SSH


 4. PASO 4: INHABILITAR LA AUTENTICACIÓN CON CONTRASEÑA EN SU SERVIDOR


 5. CONCLUSIÓN

TUTORIAL


CÓMO CONFIGURAR CLAVES DE SSH EN UBUNTU 20.04

Published on May 19, 2020
 * Linux Basics
 * Security
 * Ubuntu
 * Getting Started
 * System Tools
 * Ubuntu 20.04

Brian Boucheron

Español




INTRODUCCIÓN

SSH, o shell seguro, es un protocolo cifrado que se usa para administrar
servidores y comunicarse con ellos. Al trabajar con un servidor de Ubuntu, es
probable que pase la mayor parte de su tiempo en una sesión de terminal
conectada a su servidor a través de SSH.

En esta guía, nos centraremos en configurar claves SSH para una instalación de
Ubuntu 20.04. Las claves de SSH proporcionan una alternativa sencilla y segura
para iniciar sesión en su servidor y se recomiendan para todos los usuarios.


PASO 1: CREAR EL PAR DE CLAVES

El primer paso es crear un par de claves en la máquina cliente (por lo general,
su computadora):


 1. ssh-keygen
    


Copy

Por defecto, las versiones de ssh-keygen crearán un par de claves RSA de 3072
bit, que es lo suficientemente seguro para la mayoría de casos de uso
(opcionalmente puede pasar el indicador -b 4096 para crear una clave de 4096 bit
más grande).

Después de ingresar el comando, verá el siguiente resultado:


OutputGenerating public/private rsa key pair.
Enter file in which to save the key (/your_home/.ssh/id_rsa):


Presione ENTER para guardar el par de claves en el subdirectorio .ssh/ de su
directorio principal, o especificar una ruta alternativa.

Si generó previamente un par de claves de SSH, puede ver el siguiente mensaje:


Output/home/your_home/.ssh/id_rsa already exists.
Overwrite (y/n)?


Si elige sobrescribir la clave en el disco, ya no podrá autenticar usando la
clave anterior. Tenga mucho cuidado al convalidar la operación, ya que este es
un proceso destructivo que no puede revertirse.

Debería ver el siguiente mensaje:


OutputEnter passphrase (empty for no passphrase):


Aquí, puede introducir una frase de contraseña segura, lo cual se recomienda
mucho. Una frase de contraseña agrega una capa de seguridad adicional para
evitar el inicio de sesión de usuarios no autorizados. Para obtener más
información sobre seguridad, consulte nuestro tutorial Cómo configurar la
autenticación basada en claves de SSH en un servidor de Linux.

Verá un resultado similar al siguiente:


OutputYour identification has been saved in /your_home/.ssh/id_rsa
Your public key has been saved in /your_home/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:/hk7MJ5n5aiqdfTVUZr+2Qt+qCiS7BIm5Iv0dxrc3ks user@host
The key's randomart image is:
+---[RSA 3072]----+
|                .|
|               + |
|              +  |
| .           o . |
|o       S   . o  |
| + o. .oo. ..  .o|
|o = oooooEo+ ...o|
|.. o *o+=.*+o....|
|    =+=ooB=o.... |
+----[SHA256]-----+


Ahora dispondrá de una clave pública y privada que puede usar para realizar la
autenticación. El siguiente paso es ubicar la clave pública en su servidor a fin
de poder usar la autenticación basada en claves de SSH para iniciar sesión.


PASO 2: COPIAR LA CLAVE PÚBLICA AL SERVIDOR UBUNTU

La alternativa más rápida para copiar su clave pública al host de Ubuntu es usar
una utilidad llamada ssh-copy-id. Debido a su simplicidad, este método se
recomienda mucho si está disponible. Si no tiene la utilidad ssh-copy-id
disponible en su máquina cliente, puede usar uno de los dos métodos alternativos
proporcionados en esta sección (copiar mediante SSH con contraseña o copiar
manualmente la clave).


COPIAR CLAVE PÚBLICA USANDO SSH-COPY-ID

La herramienta ssh-copy-id se incluye por defecto en muchos sistemas operativos.
Por ello, es posible que tenga la posibilidad de disponer de ella en su sistema
local. Para que este método funcione, ya debe disponer de acceso con SSH basado
en contraseña en su servidor.

Para usar la utilidad, especifique el host remoto al que desee conectarse y la
cuenta de usuario a la que tenga acceso mediante SSH con contraseña. Esta es la
cuenta a la que se copiará su clave de SSH pública.

La sintaxis es la siguiente:


 1. ssh-copy-id username@remote_host
    


Copy

Es posible que vea el siguiente mensaje:


OutputThe authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes


Esto significa que su computadora local no reconoce el host remoto. Esto
sucederá la primera vez que establezca conexión con un nuevo host. Escriba “yes”
y presione ENTER para continuar.

A continuación, la utilidad analizará su cuenta local en busca de la clave
id_rsa.pub que creamos antes. Cuando la encuentre, le solicitará la contraseña
de la cuenta del usuario remoto:


Output/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
username@203.0.113.1's password:


Escriba la contraseña (por motivos de seguridad, no se mostrará lo que escriba)
y pulse ENTER. La utilidad se conectará a la cuenta en el host remoto usando la
contraseña que proporcionó. Luego, copie el contenido de su clave
~/.ssh/id_rsa.pub a un archivo en el directorio principal de la cuenta remota
~/.ssh, llamado authorized_keys.

Debería ver el siguiente resultado:


OutputNumber of key(s) added: 1

Now try logging into the machine, with:   "ssh 'username@203.0.113.1'"
and check to make sure that only the key(s) you wanted were added.


En este punto, su clave id_rsa.pub se habrá cargado en la cuenta remota. |Puede
continuar con el paso 3.


COPIAR CLAVE PÚBLICA USANDO SSH

Si no tiene ssh-copy-id disponible, pero tiene acceso de SSH basado en
contraseña a una cuenta de su servidor, puede cargar sus claves usando un método
de SSH convencional.

Podemos hacer esto usando el comando cat para leer el contenido de la clave de
SSH pública en nuestra computadora local y canalizando esto a través de una
conexión SSH al servidor remoto.

Por otra parte, podemos asegurarnos de que el directorio ~/.ssh exista y tenga
los permisos correctos conforme a la cuenta que usamos.

Luego podemos transformar el contenido que canalizamos a un archivo llamado
authorized_keys dentro de este directorio. Usaremos el símbolo de
redireccionamiento >> para anexar el contenido en lugar de sobrescribirlo. Esto
nos permitirá agregar claves sin eliminar claves previamente agregadas.

El comando completo tiene este aspecto:


 1. cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
    


Copy

Es posible que vea el siguiente mensaje:


OutputThe authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes


Esto significa que su computadora local no reconoce el host remoto. Esta pasará
la primera vez que establezca conexión con un nuevo host. Escriba yes y presione
ENTER para continuar.

Posteriormente, deberá recibir la solicitud de introducir la contraseña de la
cuenta de usuario remota:


Outputusername@203.0.113.1's password:


Una vez que ingrese su contraseña, el contenido de su clave id_rsa.pub se
copiará al final del archivo authorized_keys de la cuenta del usuario remoto.
Continúe con el paso 3 si el procedimiento se completó de forma correcta.


COPIAR LA CLAVE PÚBLICA DE FORMA MANUAL

Si no tiene disponibilidad de acceso de SSH basado en contraseña a su servidor,
deberá completar el proceso anterior de forma manual.

Habilitaremos el contenido de su archivo id_rsa.pub para el archivo
~/.ssh/authorized_keys en su máquina remota.

Para mostrar el contenido de su clave id_rsa.pub, escriba esto en su computadora
local:


 1. cat ~/.ssh/id_rsa.pub
    


Copy

Verá el contenido de la clave, que debería tener un aspecto similar a este:


Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test


Acceda a su host remoto usando el método que esté a su disposición.

Una vez que tenga acceso a su cuenta en el servidor remoto, debe asegurarse de
que exista el directorio ~/.ssh. Con este comando se creará el directorio, si es
necesario. Si este último ya existe, no se creará:


 1. mkdir -p ~/.ssh
    


Copy

Ahora, podrá crear o modificar el archivo authorized_keys dentro de este
directorio. Puede agregar el contenido de su archivo id_rsa.pub al final del
archivo authorized_keys y, si es necesario, crear este último con el siguiente
comando:


 1. echo public_key_string >> ~/.ssh/authorized_keys
    


Copy

En el comando anterior, reemplace public_key_string por el resultado del comando
cat ~/.ssh/id_rsa.pub que ejecutó en su sistema local. Debería iniciar con
ssh-rsa AAAA....

Por último, verificaremos que el directorio ~/.ssh y el archivo authorized_keys
tengan el conjunto de permisos apropiados:


 1. chmod -R go= ~/.ssh
    


Copy

Con esto, se eliminan de forma recursiva todos los permisos “grupo” y “otros”
del directorio ~/.ssh/.

Si está usando la cuenta root para configurar claves para una cuenta de usuario,
también es importante que el directorio ~/.ssh pertenezca al usuario y no sea
root:


 1. chown -R sammy:sammy ~/.ssh
    


Copy

En este tutorial, nuestro usuario recibe el nombre sammy, pero debe sustituir el
nombre de usuario que corresponda en el comando anterior.

Ahora podemos intentar la autenticación sin contraseña con nuestro servidor de
Ubuntu.


PASO 3: AUTENTICACIÓN EN EL SERVIDOR DE UBUNTU CON CLAVES DE SSH

Si completó con éxito uno de los procedimientos anteriores, debería poder
iniciar sesión en el host remoto sin la contraseña de la cuenta remota.

El proceso básico es el mismo:


 1. ssh username@remote_host
    


Copy

Si es la primera vez que establece conexión con este host (si empleó el último
método anterior), es posible que vea algo como esto:


OutputThe authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes


Esto significa que su computadora local no reconoce el host remoto. Escriba
“yes” y presione ENTER para continuar.

Si no proporcionó una frase de contraseña para su clave privada, se iniciará
sesión de inmediato. Si proporcionó una frase de contraseña para la clave
privada al crearla, se solicitará que la introduzca ahora (tenga en cuenta que,
por motivos de seguridad, las pulsaciones de teclas no se mostrarán en la sesión
de terminal). Después de la autenticación, se debería abrir una nueva sesión de
shell con la cuenta configurada en el servidor de Ubuntu.

Si la autenticación basada en claves se realizó con éxito, puede aprender a
proteger más su sistema inhabilitando la autenticación con contraseña.


PASO 4: INHABILITAR LA AUTENTICACIÓN CON CONTRASEÑA EN SU SERVIDOR

Si pudo iniciar sesión en su cuenta usando SSH sin una contraseña, habrá
configurado con éxito la autenticación basada en claves de SSH para su cuenta.
Sin embargo, su mecanismo de autenticación basado en contraseña sigue activo.
Esto significa que su servidor sigue expuesto a ataques de fuerza bruta.

Antes de completar los pasos de esta sección, asegúrese de tener configurada la
autenticación basada en claves de SSH para la cuenta root en este servidor o,
preferentemente, la autenticación basada en clave de SSH para una cuenta no root
en este servidor con privilegios sudo. Con este paso, se bloquearán los
registros basados en contraseñas. Por lo tanto, es fundamental que se asegure de
seguir teniendo acceso administrativo.

Una vez que haya confirmado que su cuenta remota tiene privilegios
administrativos, inicie sesión en su servidor remoto con claves de SSH, ya sea
como root o con una cuenta con privilegios sudo. Luego, abra el archivo de
configuración del demonio de SSH:


 1. sudo nano /etc/ssh/sshd_config
    


Copy

Dentro del archivo, busque una directiva llamada PasswordAuthentication. Esta
línea puede ser eliminada con una # al principio de la línea. Elimine la línea
quitando #, y establezca el valor a no. Esto deshabilitará su capacidad de
iniciar sesión vía SSH usando las contraseñas de la cuenta:

/etc/ssh/sshd_config

. . .
PasswordAuthentication no
. . .


Guarde y cierre el archivo cuando haya terminado pulsando CTRL + X, luego Y para
confirmar que desea guardar el archivo y, por último, ENTER para cerrar nano.
Para activar realmente estos cambios, debemos reiniciar el servicio sshd:


 1. sudo systemctl restart ssh
    


Copy

Como medida de precaución, abra una nueva ventana de terminal y compruebe que el
servicio de SSH funcione correctamente antes de cerrar su sesión actual:


 1. ssh username@remote_host
    


Copy

Una vez que haya verificado que su servicio de SSH está funcionando
correctamente, podrá cerrar de forma segura todas las sesiones de los servidores
actuales.

El demonio SSH de su servidor de Ubuntu ahora solo responderá a claves de SSH.
Los inicios de sesión con contraseña han sido deshabilitados.


CONCLUSIÓN

De esta manera, la autenticación basada en claves de SSH debería quedar
configurada en su servidor. Esto le permitirá iniciar sesión sin proporcionar
una contraseña de cuenta.

Si desea obtener más información sobre cómo trabajar con SSH, consulte nuestra
Guía de aspectos básicos de SSH.

Thanks for learning with the DigitalOcean Community. Check out our offerings for
compute, storage, networking, and managed databases.

Learn more about our products

About the authors
Brian Boucheron

author

STILL LOOKING FOR AN ANSWER?

Ask a questionSearch for more help

--------------------------------------------------------------------------------

Was this helpful?
YesNo
 

Comments
Leave a comment
Leave a comment...


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials,
documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Comment
This work is licensed under a Creative Commons Attribution-NonCommercial-
ShareAlike 4.0 International License.


TRY DIGITALOCEAN FOR FREE

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up


POPULAR TOPICS

 * Ubuntu
 * Linux Basics
 * JavaScript
 * Python
 * MySQL
 * Docker
 * Kubernetes
 * All tutorials
 * Talk to an expert

JOIN THE TECH TALK

Success! Thank you! Please check your email for further details.

Please complete your information!


FEATURED ON COMMUNITY


GET OUR BIWEEKLY NEWSLETTER

Sign up for Infrastructure as a Newsletter.

Sign up


HOLLIE'S HUB FOR GOOD

Working on improving health and education, reducing inequality, and spurring
economic growth? We'd like to help.

Learn more


BECOME A CONTRIBUTOR

Get paid to write technical tutorials and select a tech-focused charity to
receive a matching donation.

Learn more


FEATURED TUTORIALS

Kubernetes CourseLearn Python 3Machine Learning in PythonGetting started with
GoIntro to Kubernetes


DIGITALOCEAN PRODUCTS

App PlatformVirtual MachinesManaged DatabasesManaged KubernetesBlock
StorageObject StorageMarketplaceVPCLoad Balancers


WELCOME TO THE DEVELOPER CLOUD

DigitalOcean makes it simple to launch in the cloud and scale up as you grow —
whether you're running one virtual machine or ten thousand.

Learn more


COMPANY

 * About
 * Leadership
 * Blog
 * Careers
 * Customers
 * Partners
 * Referral Program
 * Affiliate Program
 * Press
 * Legal
 * Privacy Policy
 * Security
 * Investor Relations
 * DO Impact
 * Nonprofits

PRODUCTS

 * Products Overview
 * Droplets
 * Kubernetes
 * Paperspace
 * App Platform
 * Functions
 * Cloudways
 * Managed Databases
 * Spaces
 * Marketplace
 * Load Balancers
 * Block Storage
 * Tools & Integrations
 * API
 * Pricing
 * Pricing Calculator
 * Documentation
 * Release Notes
 * Uptime

COMMUNITY

 * Tutorials
 * Q&A
 * CSS-Tricks
 * Write for DOnations
 * Currents Research
 * Hatch Startup Program
 * Deploy 2024
 * Shop Swag
 * Compass Council
 * Open Source
 * Code of Conduct
 * Newsletter Signup

SOLUTIONS

 * Website Hosting
 * VPS Hosting
 * Web & Mobile Apps
 * Game Development
 * Streaming
 * VPN
 * SaaS Platforms
 * Cloud Hosting for Blockchain
 * Startup Resources

CONTACT

 * Support
 * Sales
 * Report Abuse
 * System Status
 * Share your ideas

COMPANY

 * About
 * Leadership
 * Blog
 * Careers
 * Customers
 * Partners
 * Referral Program
 * Affiliate Program
 * Press
 * Legal
 * Privacy Policy
 * Security
 * Investor Relations
 * DO Impact
 * Nonprofits

PRODUCTS

 * Products Overview
 * Droplets
 * Kubernetes
 * Paperspace
 * App Platform
 * Functions
 * Cloudways
 * Managed Databases
 * Spaces
 * Marketplace
 * Load Balancers
 * Block Storage
 * Tools & Integrations
 * API
 * Pricing
 * Pricing Calculator
 * Documentation
 * Release Notes
 * Uptime

COMMUNITY

 * Tutorials
 * Q&A
 * CSS-Tricks
 * Write for DOnations
 * Currents Research
 * Hatch Startup Program
 * Deploy 2024
 * Shop Swag
 * Compass Council
 * Open Source
 * Code of Conduct
 * Newsletter Signup

SOLUTIONS

 * Website Hosting
 * VPS Hosting
 * Web & Mobile Apps
 * Game Development
 * Streaming
 * VPN
 * SaaS Platforms
 * Cloud Hosting for Blockchain
 * Startup Resources

CONTACT

 * Support
 * Sales
 * Report Abuse
 * System Status
 * Share your ideas

© 2024 DigitalOcean, LLC.Sitemap.Cookie Preferences
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 

This site uses cookies and related technologies, as described in our privacy
policy, for purposes that may include site operation, analytics, enhanced user
experience, or advertising. You may choose to consent to our use of these
technologies, or manage your own preferences.
Manage Choices Agree & Proceed



Loading...


COMMUNITY




PRODUCT DOCS




MARKETPLACE




DIGITALOCEAN BLOG


navigate go exit