[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/setting-up-ssh-keys-git":3,"mdc--orjzec-key":1049,"mdc--gwb4j4-key":1072,"mdc-v7852j-key":1080,"mdc--dw8c72-key":1088,"mdc-3jinpr-key":1096,"mdc--iewrgy-key":1112,"mdc--ws0cp-key":1127,"mdc--fkgcy2-key":1135,"mdc-f06s9r-key":1151,"mdc-3zwsst-key":1159,"related-/guides/linux/install-git-debian-ubuntu,/guides/linux/git-config-basics,/errors/linux/git-permission-denied-publickey":1176},{"id":4,"title":5,"appliesTo":6,"author":12,"body":13,"canonical":981,"code":981,"createdAt":982,"description":983,"difficulty":984,"draft":985,"estimatedTime":986,"extension":987,"faq":988,"howToSteps":1001,"howToTotalTime":1020,"image":981,"keywords":1021,"locale":1030,"meta":1031,"navigation":427,"path":1032,"platform":1033,"related":1034,"section":1038,"seo":1039,"severity":981,"stem":1040,"summary":1041,"tags":1042,"twitterCreator":981,"twitterSite":981,"type":1047,"updatedAt":982,"__hash__":1048},"content_ru/guides/linux/setting-up-ssh-keys-git.md","Настройка SSH-ключей для Git на Linux: полное руководство",[7,8,9,10,11],"Ubuntu 20.04+","Debian 11+","Fedora 35+","Arch Linux","Git 2.30+","FixPedia Team",{"type":14,"value":15,"toc":960},"minimark",[16,21,30,63,66,70,73,158,162,167,174,283,287,292,352,355,359,374,381,443,447,450,455,494,499,525,529,532,536,551,556,570,575,602,631,653,657,664,680,686,690,697,745,751,797,804,928,932,956],[17,18,20],"h2",{"id":19},"введение-зачем-это-нужно","Введение / Зачем это нужно",[22,23,24,25,29],"p",{},"Работа с Git-репозиториями по протоколу HTTPS требует постоянного ввода логина и пароля (или токена). Это неудобно и небезопасно. ",[26,27,28],"strong",{},"SSH-ключи"," решают обе проблемы:",[31,32,33,40],"ul",{},[34,35,36,39],"li",{},[26,37,38],{},"Безопасность:"," Используется пара криптографических ключей вместо пароля. Приватный ключ хранится только у вас.",[34,41,42,45,46,50,51,54,55,58,59,62],{},[26,43,44],{},"Удобство:"," После однократной настройки ",[47,48,49],"code",{},"ssh-agent"," не нужно вводить никакие учетные данные при каждом ",[47,52,53],{},"git push",", ",[47,56,57],{},"git pull"," или ",[47,60,61],{},"git clone",".",[22,64,65],{},"Это руководство предназначено для пользователей Linux (Ubuntu, Debian, Fedora, Arch и др.) и поможет настроить бесшовную и безопасную работу с любым Git-хостингом, поддерживающим SSH (GitHub, GitLab, Bitbucket, собственный сервер).",[17,67,69],{"id":68},"требования-подготовка","Требования / Подготовка",[22,71,72],{},"Перед началом убедитесь, что:",[74,75,76,86,96,99],"ol",{},[34,77,78,79,82,83,62],{},"У вас есть установленный ",[26,80,81],{},"Git"," (версии 2.30+). Проверить: ",[47,84,85],{},"git --version",[34,87,88,89,54,92,95],{},"У вас есть аккаунт на ",[26,90,91],{},"GitHub",[26,93,94],{},"GitLab"," или другом сервисе, куда вы планируете пушить код.",[34,97,98],{},"У вас есть доступ к терминалу (консоли) Linux с правами вашего обычного пользователя.",[34,100,101,102,107,108,130,131],{},"Пакет ",[26,103,104],{},[47,105,106],{},"openssh-client"," установлен. Обычно он есть по умолчанию. Проверить можно командой:\n",[109,110,115],"pre",{"className":111,"code":112,"language":113,"meta":114,"style":114},"language-bash shiki shiki-themes github-light github-dark","ssh -V\n","bash","",[47,116,117],{"__ignoreMap":114},[118,119,122,126],"span",{"class":120,"line":121},"line",1,[118,123,125],{"class":124},"sScJk","ssh",[118,127,129],{"class":128},"sj4cs"," -V\n","\nЕсли команда не найдена, установите пакет:\n",[31,132,133,142,150],{},[34,134,135,138,139],{},[26,136,137],{},"Ubuntu/Debian:"," ",[47,140,141],{},"sudo apt update && sudo apt install openssh-client",[34,143,144,138,147],{},[26,145,146],{},"Fedora:",[47,148,149],{},"sudo dnf install openssh-clients",[34,151,152,138,155],{},[26,153,154],{},"Arch:",[47,156,157],{},"sudo pacman -S openssh",[17,159,161],{"id":160},"пошаговая-инструкция","Пошаговая инструкция",[163,164,166],"h3",{"id":165},"шаг-1-сгенерируйте-новую-ssh-ключевую-пару","Шаг 1: Сгенерируйте новую SSH-ключевую пару",[22,168,169,170,173],{},"Рекомендуется использовать современный и безопасный алгоритм ",[26,171,172],{},"ED25519",". Если ваша система очень старая и не поддерживает его, используйте RSA (минимум 4096 бит).",[74,175,176,179,226],{},[34,177,178],{},"Откройте терминал.",[34,180,181,182,185,186,62,189,212],{},"Выполните команду генерации. Вам будет предложено выбрать место сохранения файла (по умолчанию ",[47,183,184],{},"~/.ssh/id_ed25519",") и задать ",[26,187,188],{},"парольную фразу (passphrase)",[109,190,192],{"className":111,"code":191,"language":113,"meta":114,"style":114},"ssh-keygen -t ed25519 -C \"your_email@example.com\"\n",[47,193,194],{"__ignoreMap":114},[118,195,196,199,202,206,209],{"class":120,"line":121},[118,197,198],{"class":124},"ssh-keygen",[118,200,201],{"class":128}," -t",[118,203,205],{"class":204},"sZZnC"," ed25519",[118,207,208],{"class":128}," -C",[118,210,211],{"class":204}," \"your_email@example.com\"\n",[31,213,214,220],{},[34,215,216,219],{},[47,217,218],{},"-t ed25519"," — тип ключа.",[34,221,222,225],{},[47,223,224],{},"-C \"your_email@example.com\""," — комментарий, обычно указывают email, привязанный к аккаунту на Git-хостинге. Это удобно для идентификации.",[34,227,228,231,251,254,255,258,259],{},[26,229,230],{},"Настройте парольную фразу (passphrase):",[31,232,233,241],{},[34,234,235,238,239,62],{},[26,236,237],{},"Сильная парольная фраза"," (рекомендуется): Защитит ваш приватный ключ, если кто-то получит физический доступ к вашему диску. Вам нужно будет ввести её один раз при запуске ",[47,240,49],{},[34,242,243,246,247,250],{},[26,244,245],{},"Пустая парольная фраза:"," Ключ не будет защищен паролем. Удобно для автоматизации, но менее безопасно. Нажимайте ",[47,248,249],{},"Enter"," дважды, чтобы оставить поле пустым.",[252,253],"br",{},"В результате в директории ",[47,256,257],{},"~/.ssh/"," появятся два файла:",[31,260,261,274],{},[34,262,263,266,267,270,271],{},[47,264,265],{},"id_ed25519"," — ",[26,268,269],{},"приватный ключ",". ",[26,272,273],{},"НИКОМУ НЕ ПОКАЗЫВАТЬ.",[34,275,276,266,279,282],{},[47,277,278],{},"id_ed25519.pub",[26,280,281],{},"публичный ключ",". Его вы будете загружать на сервер.",[163,284,286],{"id":285},"шаг-2-запустите-и-добавьте-ключ-в-ssh-agent","Шаг 2: Запустите и добавьте ключ в ssh-agent",[22,288,289,291],{},[47,290,49],{}," — это программа-посредник, которая хранит ваш разблокированный приватный ключ в памяти и подписывает запросы от вашего имени. Это избавляет от необходимости вводить парольную фразу при каждой операции с Git.",[74,293,294,327],{},[34,295,296,299,300,321,323,324,62],{},[26,297,298],{},"Запустите агент"," (в большинстве современных дистрибутивов он запускается автоматически при входе в систему, но лучше убедиться):",[109,301,303],{"className":111,"code":302,"language":113,"meta":114,"style":114},"eval \"$(ssh-agent -s)\"\n",[47,304,305],{"__ignoreMap":114},[118,306,307,310,313,315,318],{"class":120,"line":121},[118,308,309],{"class":128},"eval",[118,311,312],{"class":204}," \"$(",[118,314,49],{"class":124},[118,316,317],{"class":128}," -s",[118,319,320],{"class":204},")\"\n",[252,322],{},"Вывод должен быть примерно таким: ",[47,325,326],{},"Agent pid 12345",[34,328,329,332,333,346,348,349,62],{},[26,330,331],{},"Добавьте ваш приватный ключ в агент",":",[109,334,336],{"className":111,"code":335,"language":113,"meta":114,"style":114},"ssh-add ~/.ssh/id_ed25519\n",[47,337,338],{"__ignoreMap":114},[118,339,340,343],{"class":120,"line":121},[118,341,342],{"class":124},"ssh-add",[118,344,345],{"class":204}," ~/.ssh/id_ed25519\n",[252,347],{},"Если вы задали парольную фразу, система запросит её сейчас. После успешного добавления вы увидите сообщение ",[47,350,351],{},"Identity added: /home/username/.ssh/id_ed25519 (your_email@example.com)",[353,354],"in-article-ad",{},[163,356,358],{"id":357},"шаг-3-скопируйте-публичный-ключ-в-буфер-обмена","Шаг 3: Скопируйте публичный ключ в буфер обмена",[22,360,361,362,365,366,369,370,373],{},"Вам нужно передать ",[26,363,364],{},"содержимое"," файла ",[47,367,368],{},"~/.ssh/id_ed25519.pub"," (целиком, включая ",[47,371,372],{},"ssh-ed25519 ... comment",") в настройки вашего аккаунта на Git-хостинге.",[22,375,376,377,380],{},"Используйте команду ",[47,378,379],{},"cat"," для вывода и перенаправление вывода в буфер обмена (или скопируйте вручную):",[109,382,384],{"className":111,"code":383,"language":113,"meta":114,"style":114},"# Для систем с xclip (Ubuntu/Debian: sudo apt install xclip)\ncat ~/.ssh/id_ed25519.pub | xclip -selection clipboard\necho \"Публичный ключ скопирован в буфер обмена.\"\n\n# Альтернатива: просто выведите на экран и скопируйте мышкой\ncat ~/.ssh/id_ed25519.pub\n",[47,385,386,392,413,422,429,435],{"__ignoreMap":114},[118,387,388],{"class":120,"line":121},[118,389,391],{"class":390},"sJ8bj","# Для систем с xclip (Ubuntu/Debian: sudo apt install xclip)\n",[118,393,395,397,400,404,407,410],{"class":120,"line":394},2,[118,396,379],{"class":124},[118,398,399],{"class":204}," ~/.ssh/id_ed25519.pub",[118,401,403],{"class":402},"szBVR"," |",[118,405,406],{"class":124}," xclip",[118,408,409],{"class":128}," -selection",[118,411,412],{"class":204}," clipboard\n",[118,414,416,419],{"class":120,"line":415},3,[118,417,418],{"class":128},"echo",[118,420,421],{"class":204}," \"Публичный ключ скопирован в буфер обмена.\"\n",[118,423,425],{"class":120,"line":424},4,[118,426,428],{"emptyLinePlaceholder":427},true,"\n",[118,430,432],{"class":120,"line":431},5,[118,433,434],{"class":390},"# Альтернатива: просто выведите на экран и скопируйте мышкой\n",[118,436,438,440],{"class":120,"line":437},6,[118,439,379],{"class":124},[118,441,442],{"class":204}," ~/.ssh/id_ed25519.pub\n",[163,444,446],{"id":445},"шаг-4-добавьте-публичный-ключ-в-аккаунт-сервиса","Шаг 4: Добавьте публичный ключ в аккаунт сервиса",[22,448,449],{},"Процесс почти идентичен для GitHub, GitLab и других сервисов.",[22,451,452],{},[26,453,454],{},"Для GitHub:",[74,456,457,463,469,475,482,488],{},[34,458,459,460,62],{},"В правом верхнем углу нажмите на аватар → ",[26,461,462],{},"Settings",[34,464,465,466,62],{},"В меню слева выберите ",[26,467,468],{},"SSH and GPG keys",[34,470,471,472,62],{},"Нажмите ",[26,473,474],{},"New SSH key",[34,476,477,478,481],{},"В поле ",[26,479,480],{},"Title"," дайте ключу осмысленное имя (например, \"Ноутбук - Ubuntu 22.04\").",[34,483,477,484,487],{},[26,485,486],{},"Key"," вставьте содержимое из буфера обмена (то, что вы скопировали на предыдущем шаге).",[34,489,471,490,493],{},[26,491,492],{},"Add SSH key",". Может потребоваться ввести пароль от аккаунта для подтверждения.",[22,495,496],{},[26,497,498],{},"Для GitLab:",[74,500,501,507,512,520],{},[34,502,503,504,62],{},"Нажмите на аватар → ",[26,505,506],{},"Preferences",[34,508,465,509,62],{},[26,510,511],{},"SSH Keys",[34,513,477,514,516,517,519],{},[26,515,486],{}," вставьте ключ. Поле ",[26,518,480],{}," заполните по желанию.",[34,521,471,522,62],{},[26,523,524],{},"Add key",[163,526,528],{"id":527},"шаг-5-протестируйте-подключение","Шаг 5: Протестируйте подключение",[22,530,531],{},"Перед тем как клонировать или работать с репозиториями, проверьте, что аутентификация проходит успешно.",[22,533,534],{},[26,535,454],{},[109,537,539],{"className":111,"code":538,"language":113,"meta":114,"style":114},"ssh -T git@github.com\n",[47,540,541],{"__ignoreMap":114},[118,542,543,545,548],{"class":120,"line":121},[118,544,125],{"class":124},[118,546,547],{"class":128}," -T",[118,549,550],{"class":204}," git@github.com\n",[22,552,553],{},[26,554,555],{},"Для GitLab (gitlab.com):",[109,557,559],{"className":111,"code":558,"language":113,"meta":114,"style":114},"ssh -T git@gitlab.com\n",[47,560,561],{"__ignoreMap":114},[118,562,563,565,567],{"class":120,"line":121},[118,564,125],{"class":124},[118,566,547],{"class":128},[118,568,569],{"class":204}," git@gitlab.com\n",[22,571,572],{},[26,573,574],{},"Для GitLab (самохост):",[109,576,578],{"className":111,"code":577,"language":113,"meta":114,"style":114},"ssh -T git@\u003Cваш-домен-гитлаба>\n",[47,579,580],{"__ignoreMap":114},[118,581,582,584,586,589,592,595,599],{"class":120,"line":121},[118,583,125],{"class":124},[118,585,547],{"class":128},[118,587,588],{"class":204}," git@",[118,590,591],{"class":402},"\u003C",[118,593,594],{"class":204},"ваш-домен-гитлаб",[118,596,598],{"class":597},"sVt8B","а",[118,600,601],{"class":402},">\n",[31,603,604,610],{},[34,605,606,607,62],{},"При первом подключении вы увидите предупреждение о fingerprint хоста. Согласитесь, набрав ",[47,608,609],{},"yes",[34,611,612,615,616,624,625],{},[26,613,614],{},"Успешный результат"," выглядит примерно так:\n",[109,617,622],{"className":618,"code":620,"language":621},[619],"language-text","Hi \u003Cusername>! You've successfully authenticated, but GitHub does not provide shell access.\n","text",[47,623,620],{"__ignoreMap":114},"\nИли для GitLab:\n",[109,626,629],{"className":627,"code":628,"language":621},[619],"Welcome to GitLab, @username!\n",[47,630,628],{"__ignoreMap":114},[22,632,633,634,637,638,640,641,644,645,648,649,652],{},"Если вы видите сообщение ",[47,635,636],{},"Permission denied (publickey)",", вернитесь к шагу 2 и проверьте, что ключ добавлен в ",[47,639,49],{}," (",[47,642,643],{},"ssh-add -l","), и что вы скопировали ",[26,646,647],{},"публичный"," ключ (",[47,650,651],{},".pub","), а не приватный.",[17,654,656],{"id":655},"проверка-результата","Проверка результата",[22,658,659,660,663],{},"Теперь попробуйте ",[26,661,662],{},"клонировать"," любой публичный репозиторий по его SSH-URL (а не HTTPS!). Например:",[109,665,667],{"className":111,"code":666,"language":113,"meta":114,"style":114},"git clone git@github.com:FixPedia/example-repo.git\n",[47,668,669],{"__ignoreMap":114},[118,670,671,674,677],{"class":120,"line":121},[118,672,673],{"class":124},"git",[118,675,676],{"class":204}," clone",[118,678,679],{"class":204}," git@github.com:FixPedia/example-repo.git\n",[22,681,682,683,685],{},"Процесс должен пройти без запросов пароля или токена. Если клонирование прошло успешно, и вы можете делать ",[47,684,53],{}," в свои репозитории — настройка завершена!",[17,687,689],{"id":688},"возможные-проблемы","Возможные проблемы",[163,691,693,694,696],{"id":692},"_1-ошибка-permission-denied-publickey-при-тесте-или-клонировании","1. Ошибка ",[47,695,636],{}," при тесте или клонировании",[31,698,699,708],{},[34,700,701,704,705,707],{},[26,702,703],{},"Причина:"," Сервер не видит ваш ключ или ",[47,706,49],{}," не предлагает его.",[34,709,710,713],{},[26,711,712],{},"Решение:",[74,714,715,724,732],{},[34,716,717,718,720,721,62],{},"Проверьте, что ключ добавлен в агент: ",[47,719,643],{},". Если список пуст или ключа нет — добавьте заново: ",[47,722,723],{},"ssh-add ~/.ssh/id_ed25519",[34,725,726,727,640,729,731],{},"Убедитесь, что вы загрузили ",[26,728,281],{},[47,730,278],{},") в настройки аккаунта на сервере (GitHub/GitLab).",[34,733,734,735,738,739,58,742,62],{},"Проверьте, что в ",[47,736,737],{},"~/.ssh/config"," (если он есть) нет ошибочных настроек для хоста ",[47,740,741],{},"github.com",[47,743,744],{},"gitlab.com",[163,746,748,749],{"id":747},"_2-неправильные-права-на-файлы-в-ssh","2. Неправильные права на файлы в ",[47,750,257],{},[31,752,753,758],{},[34,754,755,757],{},[26,756,703],{}," SSH очень строго относится к правам доступа. Приватный ключ не должен быть доступен на запись для других пользователей.",[34,759,760,762,763],{},[26,761,712],{}," Выполните команды:\n",[109,764,766],{"className":111,"code":765,"language":113,"meta":114,"style":114},"chmod 700 ~/.ssh\nchmod 600 ~/.ssh/id_ed25519\nchmod 644 ~/.ssh/id_ed25519.pub\n",[47,767,768,779,788],{"__ignoreMap":114},[118,769,770,773,776],{"class":120,"line":121},[118,771,772],{"class":124},"chmod",[118,774,775],{"class":128}," 700",[118,777,778],{"class":204}," ~/.ssh\n",[118,780,781,783,786],{"class":120,"line":394},[118,782,772],{"class":124},[118,784,785],{"class":128}," 600",[118,787,345],{"class":204},[118,789,790,792,795],{"class":120,"line":415},[118,791,772],{"class":124},[118,793,794],{"class":128}," 644",[118,796,442],{"class":204},[163,798,800,801,803],{"id":799},"_3-проблемы-с-ssh-agent-после-перезагрузки","3. Проблемы с ",[47,802,49],{}," после перезагрузки",[31,805,806,811],{},[34,807,808,810],{},[26,809,703],{}," Агент завершает работу при выходе из системы.",[34,812,813,815,816,818,819,58,822,825,826,923,924,927],{},[26,814,712],{}," Настройте автоматический запуск ",[47,817,49],{}," и добавление ключа при старте сессии. Часто это делается через файл ",[47,820,821],{},"~/.bashrc",[47,823,824],{},"~/.zshrc",":\n",[109,827,829],{"className":111,"code":828,"language":113,"meta":114,"style":114},"# Автозапуск агента, если он не запущен\nif ! pgrep -u \"$USER\" ssh-agent > /dev/null; then\n    eval \"$(ssh-agent -s)\"\nfi\n# Добавление ключа, если он еще не добавлен\nssh-add -l > /dev/null || ssh-add ~/.ssh/id_ed25519 2>/dev/null\n",[47,830,831,836,874,887,892,897],{"__ignoreMap":114},[118,832,833],{"class":120,"line":121},[118,834,835],{"class":390},"# Автозапуск агента, если он не запущен\n",[118,837,838,841,844,847,850,853,856,859,862,865,868,871],{"class":120,"line":394},[118,839,840],{"class":402},"if",[118,842,843],{"class":402}," !",[118,845,846],{"class":124}," pgrep",[118,848,849],{"class":128}," -u",[118,851,852],{"class":204}," \"",[118,854,855],{"class":597},"$USER",[118,857,858],{"class":204},"\"",[118,860,861],{"class":204}," ssh-agent",[118,863,864],{"class":402}," >",[118,866,867],{"class":204}," /dev/null",[118,869,870],{"class":597},"; ",[118,872,873],{"class":402},"then\n",[118,875,876,879,881,883,885],{"class":120,"line":415},[118,877,878],{"class":128},"    eval",[118,880,312],{"class":204},[118,882,49],{"class":124},[118,884,317],{"class":128},[118,886,320],{"class":204},[118,888,889],{"class":120,"line":424},[118,890,891],{"class":402},"fi\n",[118,893,894],{"class":120,"line":431},[118,895,896],{"class":390},"# Добавление ключа, если он еще не добавлен\n",[118,898,899,901,904,906,908,911,914,917,920],{"class":120,"line":437},[118,900,342],{"class":124},[118,902,903],{"class":128}," -l",[118,905,864],{"class":402},[118,907,867],{"class":204},[118,909,910],{"class":402}," ||",[118,912,913],{"class":124}," ssh-add",[118,915,916],{"class":204}," ~/.ssh/id_ed25519",[118,918,919],{"class":402}," 2>",[118,921,922],{"class":204},"/dev/null\n","\nПосле добавления выполните ",[47,925,926],{},"source ~/.bashrc"," (или перезайдите в систему).",[163,929,931],{"id":930},"_4-сервер-использует-нестандартный-порт-ssh-не-22","4. Сервер использует нестандартный порт SSH (не 22)",[31,933,934,939],{},[34,935,936,938],{},[26,937,703],{}," Некоторые корпоративные или самохостенные Git-серверы используют порт, отличный от 22 (например, 2222).",[34,940,941,943,944,825,946,952,953,62],{},[26,942,712],{}," Настройте SSH для конкретного хоста через конфигурационный файл ",[47,945,737],{},[109,947,950],{"className":948,"code":949,"language":621},[619],"Host gitlab-company\n    HostName gitlab.yourcompany.com\n    Port 2222\n    User git\n    IdentityFile ~/.ssh/id_ed25519_company\n",[47,951,949],{"__ignoreMap":114},"\nЗатем используйте в URL короткое имя хоста: ",[47,954,955],{},"git@gitlab-company:group/project.git",[957,958,959],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":114,"searchDepth":394,"depth":394,"links":961},[962,963,964,971,972],{"id":19,"depth":394,"text":20},{"id":68,"depth":394,"text":69},{"id":160,"depth":394,"text":161,"children":965},[966,967,968,969,970],{"id":165,"depth":415,"text":166},{"id":285,"depth":415,"text":286},{"id":357,"depth":415,"text":358},{"id":445,"depth":415,"text":446},{"id":527,"depth":415,"text":528},{"id":655,"depth":394,"text":656},{"id":688,"depth":394,"text":689,"children":973},[974,976,978,980],{"id":692,"depth":415,"text":975},"1. Ошибка Permission denied (publickey) при тесте или клонировании",{"id":747,"depth":415,"text":977},"2. Неправильные права на файлы в ~/.ssh/",{"id":799,"depth":415,"text":979},"3. Проблемы с ssh-agent после перезагрузки",{"id":930,"depth":415,"text":931},null,"2026-02-17 11:19:36","Пошаговая инструкция по созданию и добавлению SSH-ключа для безопасного подключения к GitHub, GitLab и другим репозиториям. Защитите свои коммиты и избавьтесь от ввода пароля.","easy",false,"10-15 мин","md",[989,992,995,998],{"question":990,"answer":991},"Зачем вообще нужен SSH-ключ, если можно использовать HTTPS и пароль?","SSH-ключи обеспечивают более безопасное и удобное подключение. Вместо пароля используется криптографическая пара ключей. После настройки вам не нужно будет вводить пароль при каждом `git push` или `git pull`.",{"question":993,"answer":994},"Что такое ssh-agent и зачем он мне?","ssh-agent — это программа, которая хранит ваш приватный SSH-ключ в памяти и автоматически подписывает запросы. Без него вас могут попросить ввести пароль (pasphrase) от ключа при каждой операции с Git.",{"question":996,"answer":997},"Можно ли использовать один ключ для всех сервисов (GitHub, GitLab, собственный сервер)?","Можно, но с точки зрения безопасности это не рекомендуется. Лучше создавать отдельные ключи для разных сервисов или проектов, чтобы при компрометации одного ключа не страдали все ваши репозитории.",{"question":999,"answer":1000},"Я работаю на Windows. Этот гайд подойдет?","Нет, эта инструкция предназначена для Linux-систем. Для Windows используйте WSL2 (тогда команды будут аналогичны) или нативную настройку через Git Bash. См. отдельный гайд по настройке SSH в Windows.",[1002,1005,1008,1011,1014,1017],{"name":1003,"text":1004},"Установите OpenSSH-клиент (если не установлен)","Убедитесь, что пакет `openssh-client` установлен. В большинстве современных дистрибутивов он есть по умолчанию.",{"name":1006,"text":1007},"Сгенерируйте новую SSH-ключевую пару","Используйте команду `ssh-keygen`, чтобы создать пару ключей (приватный и публичный). Рекомендуемый тип: ed25519.",{"name":1009,"text":1010},"Запустите и добавьте ключ в ssh-agent","Активируйте агент и добавьте в него ваш приватный ключ, чтобы избежать запроса пароля при каждой операции.",{"name":1012,"text":1013},"Скопируйте публичный ключ в буфер обмена","Получите содержимое файла с публичным ключом (`~/.ssh/id_ed25519.pub`) и скопируйте его.",{"name":1015,"text":1016},"Добавьте публичный ключ в аккаунт сервиса (GitHub/GitLab)","Перейдите в настройки безопасности вашего аккаунта на выбранном хостинге и вставьте скопированный ключ.",{"name":1018,"text":1019},"Протестируйте подключение","Выполните команду `ssh -T git@github.com` (или аналогичную для GitLab), чтобы убедиться, что аутентификация прошла успешно.","PT15M",[1022,1023,1024,1025,1026,1027,1028,1029],"настройка ssh ключа git linux","ssh-agent git ubuntu","как добавить ssh ключ на github","генерация ssh ключа деб","git permission denied publickey","ssh ключ для gitlab","без пароля git clone","настройка git по ssh","ru_RU",{},"/guides/linux/setting-up-ssh-keys-git","linux",[1035,1036,1037],"/guides/linux/install-git-debian-ubuntu","/guides/linux/git-config-basics","/errors/linux/git-permission-denied-publickey","Гайды Git",{"title":5,"description":983},"guides/linux/setting-up-ssh-keys-git","Это руководство поможет вам сгенерировать SSH-ключевую пару, настроить ssh-agent и привязать ключ к вашему аккаунту на GitHub/GitLab. После выполнения вы сможете работать с Git-репозиториями без постоянного ввода пароля.",[673,125,1033,1043,1044,1045,1046],"безопасность","автоматизация","github","gitlab","guide","WGDNlIYMaMc2AvPWgtZXstHFjMRxcte7Eonk2S0wtHI",{"data":1050,"body":1051},{},{"type":1052,"children":1053},"root",[1054],{"type":1055,"tag":22,"props":1056,"children":1057},"element",{},[1058,1060,1065,1066,1071],{"type":621,"value":1059},"SSH-ключи обеспечивают более безопасное и удобное подключение. Вместо пароля используется криптографическая пара ключей. После настройки вам не нужно будет вводить пароль при каждом ",{"type":1055,"tag":47,"props":1061,"children":1063},{"className":1062},[],[1064],{"type":621,"value":53},{"type":621,"value":58},{"type":1055,"tag":47,"props":1067,"children":1069},{"className":1068},[],[1070],{"type":621,"value":57},{"type":621,"value":62},{"data":1073,"body":1074},{},{"type":1052,"children":1075},[1076],{"type":1055,"tag":22,"props":1077,"children":1078},{},[1079],{"type":621,"value":994},{"data":1081,"body":1082},{},{"type":1052,"children":1083},[1084],{"type":1055,"tag":22,"props":1085,"children":1086},{},[1087],{"type":621,"value":997},{"data":1089,"body":1090},{},{"type":1052,"children":1091},[1092],{"type":1055,"tag":22,"props":1093,"children":1094},{},[1095],{"type":621,"value":1000},{"data":1097,"body":1098},{},{"type":1052,"children":1099},[1100],{"type":1055,"tag":22,"props":1101,"children":1102},{},[1103,1105,1110],{"type":621,"value":1104},"Убедитесь, что пакет ",{"type":1055,"tag":47,"props":1106,"children":1108},{"className":1107},[],[1109],{"type":621,"value":106},{"type":621,"value":1111}," установлен. В большинстве современных дистрибутивов он есть по умолчанию.",{"data":1113,"body":1114},{},{"type":1052,"children":1115},[1116],{"type":1055,"tag":22,"props":1117,"children":1118},{},[1119,1120,1125],{"type":621,"value":376},{"type":1055,"tag":47,"props":1121,"children":1123},{"className":1122},[],[1124],{"type":621,"value":198},{"type":621,"value":1126},", чтобы создать пару ключей (приватный и публичный). Рекомендуемый тип: ed25519.",{"data":1128,"body":1129},{},{"type":1052,"children":1130},[1131],{"type":1055,"tag":22,"props":1132,"children":1133},{},[1134],{"type":621,"value":1010},{"data":1136,"body":1137},{},{"type":1052,"children":1138},[1139],{"type":1055,"tag":22,"props":1140,"children":1141},{},[1142,1144,1149],{"type":621,"value":1143},"Получите содержимое файла с публичным ключом (",{"type":1055,"tag":47,"props":1145,"children":1147},{"className":1146},[],[1148],{"type":621,"value":368},{"type":621,"value":1150},") и скопируйте его.",{"data":1152,"body":1153},{},{"type":1052,"children":1154},[1155],{"type":1055,"tag":22,"props":1156,"children":1157},{},[1158],{"type":621,"value":1016},{"data":1160,"body":1161},{},{"type":1052,"children":1162},[1163],{"type":1055,"tag":22,"props":1164,"children":1165},{},[1166,1168,1174],{"type":621,"value":1167},"Выполните команду ",{"type":1055,"tag":47,"props":1169,"children":1171},{"className":1170},[],[1172],{"type":621,"value":1173},"ssh -T git@github.com",{"type":621,"value":1175}," (или аналогичную для GitLab), чтобы убедиться, что аутентификация прошла успешно.",[]]