[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/guides/linux/use-ssh-keys":3,"mdc--sd9lyy-key":517,"mdc--wc9s5k-key":536,"mdc--76qgbb-key":568,"mdc-gwyl5e-key":627,"mdc-x9rx0w-key":663,"mdc--gy3dqf-key":686,"mdc-x7bzac-key":722,"mdc--v8wof3-key":752,"mdc--efmxf6-key":782,"related-/guides/linux/configure-ssh-server,/guides/linux/ssh-tunnel":806},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":452,"code":452,"createdAt":453,"description":454,"difficulty":455,"draft":456,"estimatedTime":457,"extension":458,"faq":459,"howToSteps":472,"howToTotalTime":488,"image":452,"keywords":489,"locale":498,"meta":499,"navigation":500,"path":501,"platform":502,"related":503,"section":506,"seo":507,"severity":452,"stem":508,"summary":509,"tags":510,"twitterCreator":452,"twitterSite":452,"type":515,"updatedAt":453,"__hash__":516},"content_ru/guides/linux/use-ssh-keys.md","Использование SSH-ключей для безопасного доступа к Linux-серверам",[7,8,9,10],"Ubuntu 22.04","Ubuntu 20.04","Debian 11","CentOS Stream 9","FixPedia Team",{"type":13,"value":14,"toc":439},"minimark",[15,20,24,28,73,77,82,85,122,129,133,136,174,178,188,200,203,229,232,236,242,258,265,273,276,294,298,301,312,315,319,351,355,435],[16,17,19],"h2",{"id":18},"введение-зачем-это-нужно","Введение / Зачем это нужно",[21,22,23],"p",{},"Использование SSH‑ключей значительно повышает безопасность удалённого доступа к Linux‑серверам по сравнению с паролями. Приватный ключ остаётся только у вас, а публичный можно разместить на любом хосте. После настройки вы сможете подключаться без ввода пароля, что ускоряет работу и устраняет риски подбора паролей.",[16,25,27],{"id":26},"требования-подготовка","Требования / Подготовка",[29,30,31,39,50,67],"ul",{},[32,33,34,38],"li",{},[35,36,37],"strong",{},"Операционная система:"," любая современная дистрибутивная система Linux (Ubuntu, Debian, CentOS и т.д.).",[32,40,41,44,45,49],{},[35,42,43],{},"Права пользователя:"," необходимо иметь права sudo для редактирования ",[46,47,48],"code",{},"/etc/ssh/sshd_config"," и перезапуска службы.",[32,51,52,55,56,59,60,59,63,66],{},[35,53,54],{},"Инструменты:"," установлен SSH‑клиент (",[46,57,58],{},"ssh",", ",[46,61,62],{},"ssh-keygen",[46,64,65],{},"ssh-copy-id",").",[32,68,69,72],{},[35,70,71],{},"Сеть:"," возможность подключиться по SSH к целевому серверу (порт 22 должен быть открыт).",[16,74,76],{"id":75},"пошаговая-инструкция","Пошаговая инструкция",[78,79,81],"h3",{"id":80},"шаг-1-генерация-ssh-пары-ключей","Шаг 1: Генерация SSH-пары ключей",[21,83,84],{},"Создайте новую пару RSA‑ключей размером 4096 бит. Команда также позволяет добавить комментарий, чтобы отличить ключи на разных хостах.",[86,87,92],"pre",{"className":88,"code":89,"language":90,"meta":91,"style":91},"language-bash shiki shiki-themes github-light github-dark","ssh-keygen -t rsa -b 4096 -C 'comment@host'\n","bash","",[46,93,94],{"__ignoreMap":91},[95,96,99,102,106,110,113,116,119],"span",{"class":97,"line":98},"line",1,[95,100,62],{"class":101},"sScJk",[95,103,105],{"class":104},"sj4cs"," -t",[95,107,109],{"class":108},"sZZnC"," rsa",[95,111,112],{"class":104}," -b",[95,114,115],{"class":104}," 4096",[95,117,118],{"class":104}," -C",[95,120,121],{"class":108}," 'comment@host'\n",[21,123,124,125,128],{},"Следуйте подсказкам мастера: укажите путь (по умолчанию ",[46,126,127],{},"~/.ssh/id_rsa",") и, при желании, защитите ключ фразой.",[78,130,132],{"id":131},"шаг-2-защита-приватного-ключа","Шаг 2: Защита приватного ключа",[21,134,135],{},"Правила по умолчанию могут быть слишком открытыми. Установите строгие права, чтобы только вы могли работать с ключами.",[86,137,139],{"className":88,"code":138,"language":90,"meta":91,"style":91},"chmod 700 ~/.ssh\nchmod 600 ~/.ssh/id_rsa\nchmod 644 ~/.ssh/id_rsa.pub\n",[46,140,141,152,163],{"__ignoreMap":91},[95,142,143,146,149],{"class":97,"line":98},[95,144,145],{"class":101},"chmod",[95,147,148],{"class":104}," 700",[95,150,151],{"class":108}," ~/.ssh\n",[95,153,155,157,160],{"class":97,"line":154},2,[95,156,145],{"class":101},[95,158,159],{"class":104}," 600",[95,161,162],{"class":108}," ~/.ssh/id_rsa\n",[95,164,166,168,171],{"class":97,"line":165},3,[95,167,145],{"class":101},[95,169,170],{"class":104}," 644",[95,172,173],{"class":108}," ~/.ssh/id_rsa.pub\n",[78,175,177],{"id":176},"шаг-3-копирование-публичного-ключа-на-удалённый-сервер","Шаг 3: Копирование публичного ключа на удалённый сервер",[21,179,180,181,183,184,187],{},"Самый простой способ — использовать ",[46,182,65],{},". Утилита автоматически добавит публичный ключ в ",[46,185,186],{},"~/.ssh/authorized_keys",".",[86,189,191],{"className":88,"code":190,"language":90,"meta":91,"style":91},"ssh-copy-id user@host\n",[46,192,193],{"__ignoreMap":91},[95,194,195,197],{"class":97,"line":98},[95,196,65],{"class":101},[95,198,199],{"class":108}," user@host\n",[21,201,202],{},"Если утилита недоступна, выполните ручную копию:",[86,204,206],{"className":88,"code":205,"language":90,"meta":91,"style":91},"cat ~/.ssh/id_rsa.pub | ssh user@host 'cat >> ~/.ssh/authorized_keys'\n",[46,207,208],{"__ignoreMap":91},[95,209,210,213,216,220,223,226],{"class":97,"line":98},[95,211,212],{"class":101},"cat",[95,214,215],{"class":108}," ~/.ssh/id_rsa.pub",[95,217,219],{"class":218},"szBVR"," |",[95,221,222],{"class":101}," ssh",[95,224,225],{"class":108}," user@host",[95,227,228],{"class":108}," 'cat >> ~/.ssh/authorized_keys'\n",[230,231],"in-article-ad",{},[78,233,235],{"id":234},"шаг-4-проверка-настройки-сервера-ssh","Шаг 4: Проверка настройки сервера SSH",[21,237,238,239,187],{},"Убедитесь, что сервер настроен на использование публичных ключей. Откройте конфигурационный файл и найдите строку ",[46,240,241],{},"PubkeyAuthentication",[86,243,245],{"className":88,"code":244,"language":90,"meta":91,"style":91},"sudo nano /etc/ssh/sshd_config\n",[46,246,247],{"__ignoreMap":91},[95,248,249,252,255],{"class":97,"line":98},[95,250,251],{"class":101},"sudo",[95,253,254],{"class":108}," nano",[95,256,257],{"class":108}," /etc/ssh/sshd_config\n",[21,259,260,261,264],{},"Если строка закомментирована, раскомментируйте её и установите значение ",[46,262,263],{},"yes",":",[86,266,271],{"className":267,"code":269,"language":270},[268],"language-text","PubkeyAuthentication yes\n","text",[46,272,269],{"__ignoreMap":91},[21,274,275],{},"Перезапустите службу, чтобы изменения вступили в силу:",[86,277,279],{"className":88,"code":278,"language":90,"meta":91,"style":91},"sudo systemctl restart sshd\n",[46,280,281],{"__ignoreMap":91},[95,282,283,285,288,291],{"class":97,"line":98},[95,284,251],{"class":101},[95,286,287],{"class":108}," systemctl",[95,289,290],{"class":108}," restart",[95,292,293],{"class":108}," sshd\n",[78,295,297],{"id":296},"шаг-5-подключение-с-использованием-ключа","Шаг 5: Подключение с использованием ключа",[21,299,300],{},"Теперь вы можете подключаться без пароля:",[86,302,304],{"className":88,"code":303,"language":90,"meta":91,"style":91},"ssh user@host\n",[46,305,306],{"__ignoreMap":91},[95,307,308,310],{"class":97,"line":98},[95,309,58],{"class":101},[95,311,199],{"class":108},[21,313,314],{},"Если при приватном ключе установлена фраза, SSH‑клиент запросит её ввод один раз.",[16,316,318],{"id":317},"проверка-результата","Проверка результата",[29,320,321,331,341],{},[32,322,323,326,327,330],{},[35,324,325],{},"Успешное подключение:"," если терминал отображает приглашение ",[46,328,329],{},"user@host",", всё работает.",[32,332,333,336,337,340],{},[35,334,335],{},"Проверка ключа на сервере:"," на целевом хосте выполните команду ",[46,338,339],{},"cat ~/.ssh/authorized_keys"," — вы должны увидеть строку с вашим публичным ключом.",[32,342,343,346,347,350],{},[35,344,345],{},"Тест без пароля:"," выполните ",[46,348,349],{},"ssh -i ~/.ssh/id_rsa user@host"," — пароль не потребуется.",[16,352,354],{"id":353},"возможные-проблемы","Возможные проблемы",[29,356,357,385,393,410,423],{},[32,358,359,362,363,366,367,370,371,366,374,377,378,381,382,187],{},[35,360,361],{},"Неправильные права доступа:"," если права на ",[46,364,365],{},"~/.ssh"," не ",[46,368,369],{},"700"," или на ",[46,372,373],{},"authorized_keys",[46,375,376],{},"600",", SSH отклонит ключ. Исправьте права командами ",[46,379,380],{},"chmod 700 ~/.ssh"," и ",[46,383,384],{},"chmod 600 ~/.ssh/authorized_keys",[32,386,387,392],{},[35,388,389,390,264],{},"Отсутствие ",[46,391,65],{}," используйте ручную копию, описанную в шаге 3.",[32,394,395,400,401,403,404,406,407,187],{},[35,396,397,264],{},[46,398,399],{},"PubkeyAuthentication no"," отредактируйте ",[46,402,48],{},", установите ",[46,405,263],{}," и перезапустите ",[46,408,409],{},"sshd",[32,411,412,415,416,59,419,422],{},[35,413,414],{},"Блокировка брандмауэра:"," убедитесь, что порт 22 открыт на целевом хосте (",[46,417,418],{},"iptables",[46,420,421],{},"firewalld"," или облачные группы безопасности).",[32,424,425,428,429,432,433,187],{},[35,426,427],{},"Разные ключи:"," убедитесь, что вы копируете именно тот публичный ключ, который соответствует приватному (",[46,430,431],{},"id_rsa.pub","). Повторное копирование перезапишет старый ключ в ",[46,434,373],{},[436,437,438],"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 pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":91,"searchDepth":154,"depth":154,"links":440},[441,442,443,450,451],{"id":18,"depth":154,"text":19},{"id":26,"depth":154,"text":27},{"id":75,"depth":154,"text":76,"children":444},[445,446,447,448,449],{"id":80,"depth":165,"text":81},{"id":131,"depth":165,"text":132},{"id":176,"depth":165,"text":177},{"id":234,"depth":165,"text":235},{"id":296,"depth":165,"text":297},{"id":317,"depth":154,"text":318},{"id":353,"depth":154,"text":354},null,"2026-08-04 10:25:00","Узнайте, как настроить SSH-ключи для защиты удаленного доступа к Linux-системе. Пошаговая инструкция за 5 минут. С подробными инструкциями для начинающих.","medium",false,"5-10 мин","md",[460,463,466,469],{"question":461,"answer":462},"Как сгенерировать SSH-ключ?","Запустите команду `ssh-keygen -t rsa -b 4096 -C 'your-email@example.com'` и следуйте подсказкам.",{"question":464,"answer":465},"Как скопировать публичный ключ на сервер?","Используйте `ssh-copy-id user@host` или вручную добавьте содержимое `~/.ssh/id_rsa.pub` в файл `~/.ssh/authorized_keys` на сервере.",{"question":467,"answer":468},"Что делать, если подключение с помощью ключа не работает?","Проверьте права на `~/.ssh` (`chmod 700 ~/.ssh`, `chmod 600 ~/.ssh/*`), убедитесь, что `authorized_keys` имеет права `600`, и что `PubkeyAuthentication yes` в `sshd_config`.",{"question":470,"answer":471},"Как удалить SSH-ключи?","Удалите файлы `id_rsa`, `id_rsa.pub` из `~/.ssh` и удалите публичный ключ из `~/.ssh/authorized_keys` на сервере.",[473,476,479,482,485],{"name":474,"text":475},"Генерация SSH-пары ключей","Откройте терминал на Linux-системе и выполните команду `ssh-keygen -t rsa -b 4096 -C 'comment@host'` для создания приватного и публичного ключей в каталоге `~/.ssh`.",{"name":477,"text":478},"Защита приватного ключа","Установите строгие права доступа: `chmod 600 ~/.ssh/id_rsa` и `chmod 644 ~/.ssh/id_rsa.pub`. Убедитесь, что каталог `~/.ssh` имеет права `700`.",{"name":480,"text":481},"Копирование публичного ключа на удалённый сервер","Используйте утилиту `ssh-copy-id user@host`, чтобы автоматически добавить публичный ключ в `~/.ssh/authorized_keys`. Если утилита недоступна, скопируйте ключ вручную: `cat ~/.ssh/id_rsa.pub | ssh user@host 'cat >> ~/.ssh/authorized_keys'`.",{"name":483,"text":484},"Проверка настройки сервера SSH","Откройте файл `/etc/ssh/sshd_config` и убедитесь, что строка `PubkeyAuthentication yes` присутствует (или раскомментируйте). Перезапустите сервис: `sudo systemctl restart sshd`.",{"name":486,"text":487},"Подключение с использованием ключа","Выполните `ssh user@host`, и SSH-клиент автоматически возьмёт приватный ключ из `~/.ssh/id_rsa`. Если ключ требует пароль, укажите фразу для приватного ключа.","PT10M",[490,491,492,493,494,495,496,497],"SSH ключи","генерация SSH ключа","настройка SSH ключа","подключение по SSH","автентификация SSH","Linux SSH","ssh public key","private key","ru_RU",{},true,"/guides/linux/use-ssh-keys","linux",[504,505],"/guides/linux/configure-ssh-server","/guides/linux/ssh-tunnel","Гайды Linux",{"title":5,"description":454},"guides/linux/use-ssh-keys","В этой статье вы узнаете, как сгенерировать SSH-ключи, настроить их на клиенте и сервере, а также использовать их для аутентификации. После выполнения инструкции вы сможете безопасно подключаться к удалённым хостам без пароля.",[511,512,513,514],"Linux","SSH","безопасность","аутентификация","guide","deBp6vfOSCvA1Id5Lrf3Kjx5YxoRcJLLMfwFL4PjDe4",{"data":518,"body":519},{},{"type":520,"children":521},"root",[522],{"type":523,"tag":21,"props":524,"children":525},"element",{},[526,528,534],{"type":270,"value":527},"Запустите команду ",{"type":523,"tag":46,"props":529,"children":531},{"className":530},[],[532],{"type":270,"value":533},"ssh-keygen -t rsa -b 4096 -C 'your-email@example.com'",{"type":270,"value":535}," и следуйте подсказкам.",{"data":537,"body":538},{},{"type":520,"children":539},[540],{"type":523,"tag":21,"props":541,"children":542},{},[543,545,551,553,559,561,566],{"type":270,"value":544},"Используйте ",{"type":523,"tag":46,"props":546,"children":548},{"className":547},[],[549],{"type":270,"value":550},"ssh-copy-id user@host",{"type":270,"value":552}," или вручную добавьте содержимое ",{"type":523,"tag":46,"props":554,"children":556},{"className":555},[],[557],{"type":270,"value":558},"~/.ssh/id_rsa.pub",{"type":270,"value":560}," в файл ",{"type":523,"tag":46,"props":562,"children":564},{"className":563},[],[565],{"type":270,"value":186},{"type":270,"value":567}," на сервере.",{"data":569,"body":570},{},{"type":520,"children":571},[572],{"type":523,"tag":21,"props":573,"children":574},{},[575,577,582,584,589,590,596,598,603,605,610,612,618,620,626],{"type":270,"value":576},"Проверьте права на ",{"type":523,"tag":46,"props":578,"children":580},{"className":579},[],[581],{"type":270,"value":365},{"type":270,"value":583}," (",{"type":523,"tag":46,"props":585,"children":587},{"className":586},[],[588],{"type":270,"value":380},{"type":270,"value":59},{"type":523,"tag":46,"props":591,"children":593},{"className":592},[],[594],{"type":270,"value":595},"chmod 600 ~/.ssh/*",{"type":270,"value":597},"), убедитесь, что ",{"type":523,"tag":46,"props":599,"children":601},{"className":600},[],[602],{"type":270,"value":373},{"type":270,"value":604}," имеет права ",{"type":523,"tag":46,"props":606,"children":608},{"className":607},[],[609],{"type":270,"value":376},{"type":270,"value":611},", и что ",{"type":523,"tag":46,"props":613,"children":615},{"className":614},[],[616],{"type":270,"value":617},"PubkeyAuthentication yes",{"type":270,"value":619}," в ",{"type":523,"tag":46,"props":621,"children":623},{"className":622},[],[624],{"type":270,"value":625},"sshd_config",{"type":270,"value":187},{"data":628,"body":629},{},{"type":520,"children":630},[631],{"type":523,"tag":21,"props":632,"children":633},{},[634,636,642,643,648,650,655,657,662],{"type":270,"value":635},"Удалите файлы ",{"type":523,"tag":46,"props":637,"children":639},{"className":638},[],[640],{"type":270,"value":641},"id_rsa",{"type":270,"value":59},{"type":523,"tag":46,"props":644,"children":646},{"className":645},[],[647],{"type":270,"value":431},{"type":270,"value":649}," из ",{"type":523,"tag":46,"props":651,"children":653},{"className":652},[],[654],{"type":270,"value":365},{"type":270,"value":656}," и удалите публичный ключ из ",{"type":523,"tag":46,"props":658,"children":660},{"className":659},[],[661],{"type":270,"value":186},{"type":270,"value":567},{"data":664,"body":665},{},{"type":520,"children":666},[667],{"type":523,"tag":21,"props":668,"children":669},{},[670,672,678,680,685],{"type":270,"value":671},"Откройте терминал на Linux-системе и выполните команду ",{"type":523,"tag":46,"props":673,"children":675},{"className":674},[],[676],{"type":270,"value":677},"ssh-keygen -t rsa -b 4096 -C 'comment@host'",{"type":270,"value":679}," для создания приватного и публичного ключей в каталоге ",{"type":523,"tag":46,"props":681,"children":683},{"className":682},[],[684],{"type":270,"value":365},{"type":270,"value":187},{"data":687,"body":688},{},{"type":520,"children":689},[690],{"type":523,"tag":21,"props":691,"children":692},{},[693,695,701,702,708,710,715,716,721],{"type":270,"value":694},"Установите строгие права доступа: ",{"type":523,"tag":46,"props":696,"children":698},{"className":697},[],[699],{"type":270,"value":700},"chmod 600 ~/.ssh/id_rsa",{"type":270,"value":381},{"type":523,"tag":46,"props":703,"children":705},{"className":704},[],[706],{"type":270,"value":707},"chmod 644 ~/.ssh/id_rsa.pub",{"type":270,"value":709},". Убедитесь, что каталог ",{"type":523,"tag":46,"props":711,"children":713},{"className":712},[],[714],{"type":270,"value":365},{"type":270,"value":604},{"type":523,"tag":46,"props":717,"children":719},{"className":718},[],[720],{"type":270,"value":369},{"type":270,"value":187},{"data":723,"body":724},{},{"type":520,"children":725},[726],{"type":523,"tag":21,"props":727,"children":728},{},[729,731,736,738,743,745,751],{"type":270,"value":730},"Используйте утилиту ",{"type":523,"tag":46,"props":732,"children":734},{"className":733},[],[735],{"type":270,"value":550},{"type":270,"value":737},", чтобы автоматически добавить публичный ключ в ",{"type":523,"tag":46,"props":739,"children":741},{"className":740},[],[742],{"type":270,"value":186},{"type":270,"value":744},". Если утилита недоступна, скопируйте ключ вручную: ",{"type":523,"tag":46,"props":746,"children":748},{"className":747},[],[749],{"type":270,"value":750},"cat ~/.ssh/id_rsa.pub | ssh user@host 'cat >> ~/.ssh/authorized_keys'",{"type":270,"value":187},{"data":753,"body":754},{},{"type":520,"children":755},[756],{"type":523,"tag":21,"props":757,"children":758},{},[759,761,766,768,773,775,781],{"type":270,"value":760},"Откройте файл ",{"type":523,"tag":46,"props":762,"children":764},{"className":763},[],[765],{"type":270,"value":48},{"type":270,"value":767}," и убедитесь, что строка ",{"type":523,"tag":46,"props":769,"children":771},{"className":770},[],[772],{"type":270,"value":617},{"type":270,"value":774}," присутствует (или раскомментируйте). Перезапустите сервис: ",{"type":523,"tag":46,"props":776,"children":778},{"className":777},[],[779],{"type":270,"value":780},"sudo systemctl restart sshd",{"type":270,"value":187},{"data":783,"body":784},{},{"type":520,"children":785},[786],{"type":523,"tag":21,"props":787,"children":788},{},[789,791,797,799,804],{"type":270,"value":790},"Выполните ",{"type":523,"tag":46,"props":792,"children":794},{"className":793},[],[795],{"type":270,"value":796},"ssh user@host",{"type":270,"value":798},", и SSH-клиент автоматически возьмёт приватный ключ из ",{"type":523,"tag":46,"props":800,"children":802},{"className":801},[],[803],{"type":270,"value":127},{"type":270,"value":805},". Если ключ требует пароль, укажите фразу для приватного ключа.",[807],{"id":808,"title":809,"appliesTo":810,"author":11,"body":815,"canonical":452,"code":452,"createdAt":2252,"description":2253,"difficulty":455,"draft":456,"estimatedTime":2254,"extension":458,"faq":2255,"howToSteps":2268,"howToTotalTime":2287,"image":452,"keywords":2288,"locale":498,"meta":2299,"navigation":500,"path":504,"platform":502,"related":2300,"section":506,"seo":2304,"severity":452,"stem":2305,"summary":2306,"tags":2307,"twitterCreator":452,"twitterSite":452,"type":515,"updatedAt":2252,"__hash__":2312},"content_ru/guides/linux/configure-ssh-server.md","Настройка SSH-сервера на Linux: полное руководство по безопасности",[811,812,813,814],"Ubuntu 22.04/24.04","Debian 11/12","CentOS Stream 8/9/Rocky Linux 8/9","OpenSSH 7.6+",{"type":13,"value":816,"toc":2220},[817,819,831,838,866,869,871,874,947,951,954,958,988,992,1021,1024,1056,1063,1107,1110,1133,1142,1146,1155,1174,1178,1318,1340,1344,1347,1351,1421,1425,1482,1485,1523,1527,1530,1534,1578,1582,1585,1602,1608,1687,1693,1696,1721,1724,1740,1743,1747,1753,1871,1873,1925,1927,1937,1965,1972,2042,2046,2088,2092,2124,2131,2152,2154,2158,2217],[16,818,19],{"id":18},[21,820,821,824,825,827,828,830],{},[35,822,823],{},"SSH (Secure Shell)"," — это стандарт для безопасного удалённого управления серверами и передачи данных. По умолчанию после установки SSH-сервер (демон ",[46,826,409],{},") работает с настройками, которые небезопасны для публичного доступа: открыт порт 22, разрешён вход суперпользователя ",[46,829,520],{}," по паролю, нет защиты от перебора.",[21,832,833,834,837],{},"Это руководство поможет вам ",[35,835,836],{},"трансформировать уязвимый SSH-сервер в защищённый шлюз",". Вы научитесь:",[29,839,840,843,846,849,855,860,863],{},[32,841,842],{},"Устанавливать и запускать службу.",[32,844,845],{},"Менять стандартный порт.",[32,847,848],{},"Ограничивать круг пользователей.",[32,850,851,854],{},[35,852,853],{},"Критически важно:"," отключать аутентификацию по паролю в пользу SSH-ключей.",[32,856,857,858,187],{},"Блокировать прямой вход ",[46,859,520],{},[32,861,862],{},"Добавлять защиту от брутфорса с помощью Fail2ban.",[32,864,865],{},"Правильно настраивать фаервол.",[21,867,868],{},"После выполнения этих шагов риск несанкционированного доступа к вашему серверу снизится на порядок.",[16,870,27],{"id":26},[21,872,873],{},"Перед началом убедитесь, что у вас есть:",[875,876,877,883,891,928,934],"ol",{},[32,878,879,882],{},[35,880,881],{},"Доступ к серверу с правами sudo."," Вы должны быть able выполнять команды от имени суперпользователя.",[32,884,885,888,889,66],{},[35,886,887],{},"Установленный OpenSSH-клиент"," на вашей локальной машине (",[46,890,58],{},[32,892,893,896,897],{},[35,894,895],{},"Резервная копия текущего конфигурационного файла."," Создайте её вручную:\n",[86,898,900],{"className":88,"code":899,"language":90,"meta":91,"style":91},"sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup.$(date +%F)\n",[46,901,902],{"__ignoreMap":91},[95,903,904,906,909,912,915,919,922,925],{"class":97,"line":98},[95,905,251],{"class":101},[95,907,908],{"class":108}," cp",[95,910,911],{"class":108}," /etc/ssh/sshd_config",[95,913,914],{"class":108}," /etc/ssh/sshd_config.backup.",[95,916,918],{"class":917},"sVt8B","$(",[95,920,921],{"class":101},"date",[95,923,924],{"class":108}," +%F",[95,926,927],{"class":917},")\n",[32,929,930,933],{},[35,931,932],{},"Альтернативный способ доступа"," к серверу (консоль через панель управления хостинг-провайдера, IPMI/KVM), на случай если вы заблокируете себя.",[32,935,936,939,940,942,943,946],{},[35,937,938],{},"Ваш SSH-публичный ключ"," уже добавлен в ",[46,941,186],{}," на целевом сервере. Если нет — добавьте его ",[35,944,945],{},"до"," отключения аутентификации по паролю.",[16,948,950],{"id":949},"шаг-1-установка-и-проверка-службы-openssh-сервера","Шаг 1: Установка и проверка службы OpenSSH-сервера",[21,952,953],{},"Если SSH-сервер ещё не установлен, начните отсюда.",[78,955,957],{"id":956},"для-ubuntudebian","Для Ubuntu/Debian:",[86,959,961],{"className":88,"code":960,"language":90,"meta":91,"style":91},"sudo apt update\nsudo apt install -y openssh-server\n",[46,962,963,973],{"__ignoreMap":91},[95,964,965,967,970],{"class":97,"line":98},[95,966,251],{"class":101},[95,968,969],{"class":108}," apt",[95,971,972],{"class":108}," update\n",[95,974,975,977,979,982,985],{"class":97,"line":154},[95,976,251],{"class":101},[95,978,969],{"class":108},[95,980,981],{"class":108}," install",[95,983,984],{"class":104}," -y",[95,986,987],{"class":108}," openssh-server\n",[78,989,991],{"id":990},"для-centosrhelrockyalmalinux","Для CentOS/RHEL/Rocky/AlmaLinux:",[86,993,995],{"className":88,"code":994,"language":90,"meta":91,"style":91},"sudo dnf install -y openssh-server\n# Или для старых версий:\n# sudo yum install -y openssh-server\n",[46,996,997,1010,1016],{"__ignoreMap":91},[95,998,999,1001,1004,1006,1008],{"class":97,"line":98},[95,1000,251],{"class":101},[95,1002,1003],{"class":108}," dnf",[95,1005,981],{"class":108},[95,1007,984],{"class":104},[95,1009,987],{"class":108},[95,1011,1012],{"class":97,"line":154},[95,1013,1015],{"class":1014},"sJ8bj","# Или для старых версий:\n",[95,1017,1018],{"class":97,"line":165},[95,1019,1020],{"class":1014},"# sudo yum install -y openssh-server\n",[21,1022,1023],{},"После установки служба обычно запускается автоматически. Проверим статус:",[86,1025,1027],{"className":88,"code":1026,"language":90,"meta":91,"style":91},"sudo systemctl status ssh\n# На CentOS/RHEL имя службы может быть `sshd`\nsudo systemctl status sshd\n",[46,1028,1029,1041,1046],{"__ignoreMap":91},[95,1030,1031,1033,1035,1038],{"class":97,"line":98},[95,1032,251],{"class":101},[95,1034,287],{"class":108},[95,1036,1037],{"class":108}," status",[95,1039,1040],{"class":108}," ssh\n",[95,1042,1043],{"class":97,"line":154},[95,1044,1045],{"class":1014},"# На CentOS/RHEL имя службы может быть `sshd`\n",[95,1047,1048,1050,1052,1054],{"class":97,"line":165},[95,1049,251],{"class":101},[95,1051,287],{"class":108},[95,1053,1037],{"class":108},[95,1055,293],{"class":108},[21,1057,1058,1059,1062],{},"Вы должны видеть ",[46,1060,1061],{},"active (running)",". Если нет, запустите и включите автозагрузку:",[86,1064,1066],{"className":88,"code":1065,"language":90,"meta":91,"style":91},"sudo systemctl start ssh\nsudo systemctl enable ssh\n# Или для sshd:\n# sudo systemctl start sshd\n# sudo systemctl enable sshd\n",[46,1067,1068,1079,1090,1095,1101],{"__ignoreMap":91},[95,1069,1070,1072,1074,1077],{"class":97,"line":98},[95,1071,251],{"class":101},[95,1073,287],{"class":108},[95,1075,1076],{"class":108}," start",[95,1078,1040],{"class":108},[95,1080,1081,1083,1085,1088],{"class":97,"line":154},[95,1082,251],{"class":101},[95,1084,287],{"class":108},[95,1086,1087],{"class":108}," enable",[95,1089,1040],{"class":108},[95,1091,1092],{"class":97,"line":165},[95,1093,1094],{"class":1014},"# Или для sshd:\n",[95,1096,1098],{"class":97,"line":1097},4,[95,1099,1100],{"class":1014},"# sudo systemctl start sshd\n",[95,1102,1104],{"class":97,"line":1103},5,[95,1105,1106],{"class":1014},"# sudo systemctl enable sshd\n",[21,1108,1109],{},"Убедитесь, что демон слушает порт 22 (по умолчанию):",[86,1111,1113],{"className":88,"code":1112,"language":90,"meta":91,"style":91},"sudo ss -tlnp | grep :22\n",[46,1114,1115],{"__ignoreMap":91},[95,1116,1117,1119,1122,1125,1127,1130],{"class":97,"line":98},[95,1118,251],{"class":101},[95,1120,1121],{"class":108}," ss",[95,1123,1124],{"class":104}," -tlnp",[95,1126,219],{"class":218},[95,1128,1129],{"class":101}," grep",[95,1131,1132],{"class":108}," :22\n",[21,1134,1135,1136,1139,1140,187],{},"В выводе должна быть строка с ",[46,1137,1138],{},"LISTEN"," и процессом ",[46,1141,409],{},[16,1143,1145],{"id":1144},"шаг-2-резервное-копирование-и-редактирование-основной-конфигурации","Шаг 2: Резервное копирование и редактирование основной конфигурации",[21,1147,1148,1149,1151,1152],{},"Все основные настройки хранятся в ",[46,1150,48],{},". ",[35,1153,1154],{},"Никогда не редактируйте этот файл без предварительного бэкапа.",[21,1156,1157,1158,1161,1162,1165,1166,1169,1170,1173],{},"Откройте файл в текстовом редакторе (например, ",[46,1159,1160],{},"sudo nano /etc/ssh/sshd_config"," или ",[46,1163,1164],{},"sudo vim /etc/ssh/sshd_config",") и внесите следующие изменения. ",[35,1167,1168],{},"Раскомментируйте"," (удалите ",[46,1171,1172],{},"#"," в начале строки) нужные параметры и установите значения.",[78,1175,1177],{"id":1176},"ключевые-директивы-для-безопасности","Ключевые директивы для безопасности:",[86,1179,1183],{"className":1180,"code":1181,"language":1182,"meta":91,"style":91},"language-ini shiki shiki-themes github-light github-dark","# 1. Меняем стандартный порт (например, на 2222). Это усложнит автоматические сканирования.\nPort 2222\n\n# 2. Запрещаем вход суперпользователю root.\nPermitRootLogin no\n\n# 3. Ограничиваем круг пользователей, которые могут подключаться.\n# Перечислите через пробел логины, которые имеют доступ.\nAllowUsers your_username another_user\n\n# 4. Включаем аутентификацию по SSH-ключам и ОТКЛЮЧАЕМ по паролю.\nPubkeyAuthentication yes\nPasswordAuthentication no\n\n# 5. Отключаем пустые пароли (если по какой-то причине PasswordAuthentication=yes).\nPermitEmptyPasswords no\n\n# 6. Ограничиваем количество одновременных сессий (опционально, но полезно).\nMaxSessions 2\nMaxAuthTries 3\n\n# 7. Настройка таймаутов (закрывает неактивные соединения).\nClientAliveInterval 300\nClientAliveCountMax 2\n","ini",[46,1184,1185,1190,1195,1200,1205,1210,1215,1221,1227,1233,1238,1244,1249,1255,1260,1266,1272,1277,1283,1289,1295,1300,1306,1312],{"__ignoreMap":91},[95,1186,1187],{"class":97,"line":98},[95,1188,1189],{},"# 1. Меняем стандартный порт (например, на 2222). Это усложнит автоматические сканирования.\n",[95,1191,1192],{"class":97,"line":154},[95,1193,1194],{},"Port 2222\n",[95,1196,1197],{"class":97,"line":165},[95,1198,1199],{"emptyLinePlaceholder":500},"\n",[95,1201,1202],{"class":97,"line":1097},[95,1203,1204],{},"# 2. Запрещаем вход суперпользователю root.\n",[95,1206,1207],{"class":97,"line":1103},[95,1208,1209],{},"PermitRootLogin no\n",[95,1211,1213],{"class":97,"line":1212},6,[95,1214,1199],{"emptyLinePlaceholder":500},[95,1216,1218],{"class":97,"line":1217},7,[95,1219,1220],{},"# 3. Ограничиваем круг пользователей, которые могут подключаться.\n",[95,1222,1224],{"class":97,"line":1223},8,[95,1225,1226],{},"# Перечислите через пробел логины, которые имеют доступ.\n",[95,1228,1230],{"class":97,"line":1229},9,[95,1231,1232],{},"AllowUsers your_username another_user\n",[95,1234,1236],{"class":97,"line":1235},10,[95,1237,1199],{"emptyLinePlaceholder":500},[95,1239,1241],{"class":97,"line":1240},11,[95,1242,1243],{},"# 4. Включаем аутентификацию по SSH-ключам и ОТКЛЮЧАЕМ по паролю.\n",[95,1245,1247],{"class":97,"line":1246},12,[95,1248,269],{},[95,1250,1252],{"class":97,"line":1251},13,[95,1253,1254],{},"PasswordAuthentication no\n",[95,1256,1258],{"class":97,"line":1257},14,[95,1259,1199],{"emptyLinePlaceholder":500},[95,1261,1263],{"class":97,"line":1262},15,[95,1264,1265],{},"# 5. Отключаем пустые пароли (если по какой-то причине PasswordAuthentication=yes).\n",[95,1267,1269],{"class":97,"line":1268},16,[95,1270,1271],{},"PermitEmptyPasswords no\n",[95,1273,1275],{"class":97,"line":1274},17,[95,1276,1199],{"emptyLinePlaceholder":500},[95,1278,1280],{"class":97,"line":1279},18,[95,1281,1282],{},"# 6. Ограничиваем количество одновременных сессий (опционально, но полезно).\n",[95,1284,1286],{"class":97,"line":1285},19,[95,1287,1288],{},"MaxSessions 2\n",[95,1290,1292],{"class":97,"line":1291},20,[95,1293,1294],{},"MaxAuthTries 3\n",[95,1296,1298],{"class":97,"line":1297},21,[95,1299,1199],{"emptyLinePlaceholder":500},[95,1301,1303],{"class":97,"line":1302},22,[95,1304,1305],{},"# 7. Настройка таймаутов (закрывает неактивные соединения).\n",[95,1307,1309],{"class":97,"line":1308},23,[95,1310,1311],{},"ClientAliveInterval 300\n",[95,1313,1315],{"class":97,"line":1314},24,[95,1316,1317],{},"ClientAliveCountMax 2\n",[21,1319,1320,1323,1324,1327,1328,1331,1332,1335,1336,1339],{},[35,1321,1322],{},"Важно:"," Если вы меняете порт (",[46,1325,1326],{},"Port","), ",[35,1329,1330],{},"не удаляйте строку с портом 22",", если планируете временно оставить старый порт для отладки. Лучше закомментируйте её (",[46,1333,1334],{},"#Port 22","), чтобы старый порт не слушался. После успешного теста подключения на новом порту строку с ",[46,1337,1338],{},"Port 22"," можно удалить.",[16,1341,1343],{"id":1342},"шаг-3-настройка-фаервола-firewall","Шаг 3: Настройка фаервола (Firewall)",[21,1345,1346],{},"Изменение порта бесполезно, если фаервол не открыт новый порт. Настройте его в зависимости от вашего дистрибутива.",[78,1348,1350],{"id":1349},"для-ubuntudebian-ufw","Для Ubuntu/Debian (UFW):",[86,1352,1354],{"className":88,"code":1353,"language":90,"meta":91,"style":91},"# Разрешаем новый порт (в нашем примере 2222/tcp)\nsudo ufw allow 2222/tcp\n\n# Удаляем старое правило для порта 22, если оно было\nsudo ufw delete deny 22/tcp 2>/dev/null || true\nsudo ufw status verbose\n",[46,1355,1356,1361,1374,1378,1383,1410],{"__ignoreMap":91},[95,1357,1358],{"class":97,"line":98},[95,1359,1360],{"class":1014},"# Разрешаем новый порт (в нашем примере 2222/tcp)\n",[95,1362,1363,1365,1368,1371],{"class":97,"line":154},[95,1364,251],{"class":101},[95,1366,1367],{"class":108}," ufw",[95,1369,1370],{"class":108}," allow",[95,1372,1373],{"class":108}," 2222/tcp\n",[95,1375,1376],{"class":97,"line":165},[95,1377,1199],{"emptyLinePlaceholder":500},[95,1379,1380],{"class":97,"line":1097},[95,1381,1382],{"class":1014},"# Удаляем старое правило для порта 22, если оно было\n",[95,1384,1385,1387,1389,1392,1395,1398,1401,1404,1407],{"class":97,"line":1103},[95,1386,251],{"class":101},[95,1388,1367],{"class":108},[95,1390,1391],{"class":108}," delete",[95,1393,1394],{"class":108}," deny",[95,1396,1397],{"class":108}," 22/tcp",[95,1399,1400],{"class":218}," 2>",[95,1402,1403],{"class":108},"/dev/null",[95,1405,1406],{"class":218}," ||",[95,1408,1409],{"class":104}," true\n",[95,1411,1412,1414,1416,1418],{"class":97,"line":1212},[95,1413,251],{"class":101},[95,1415,1367],{"class":108},[95,1417,1037],{"class":108},[95,1419,1420],{"class":108}," verbose\n",[78,1422,1424],{"id":1423},"для-centosrhelrocky-firewalld","Для CentOS/RHEL/Rocky (firewalld):",[86,1426,1428],{"className":88,"code":1427,"language":90,"meta":91,"style":91},"# Добавляем сервис/порт в публичную зону\nsudo firewall-cmd --permanent --add-port=2222/tcp\n# Удаляем старый порт, если нужно\nsudo firewall-cmd --permanent --remove-service=ssh\nsudo firewall-cmd --reload\nsudo firewall-cmd --list-all\n",[46,1429,1430,1435,1448,1453,1464,1473],{"__ignoreMap":91},[95,1431,1432],{"class":97,"line":98},[95,1433,1434],{"class":1014},"# Добавляем сервис/порт в публичную зону\n",[95,1436,1437,1439,1442,1445],{"class":97,"line":154},[95,1438,251],{"class":101},[95,1440,1441],{"class":108}," firewall-cmd",[95,1443,1444],{"class":104}," --permanent",[95,1446,1447],{"class":104}," --add-port=2222/tcp\n",[95,1449,1450],{"class":97,"line":165},[95,1451,1452],{"class":1014},"# Удаляем старый порт, если нужно\n",[95,1454,1455,1457,1459,1461],{"class":97,"line":1097},[95,1456,251],{"class":101},[95,1458,1441],{"class":108},[95,1460,1444],{"class":104},[95,1462,1463],{"class":104}," --remove-service=ssh\n",[95,1465,1466,1468,1470],{"class":97,"line":1103},[95,1467,251],{"class":101},[95,1469,1441],{"class":108},[95,1471,1472],{"class":104}," --reload\n",[95,1474,1475,1477,1479],{"class":97,"line":1212},[95,1476,251],{"class":101},[95,1478,1441],{"class":108},[95,1480,1481],{"class":104}," --list-all\n",[21,1483,1484],{},"Проверьте, что порт действительно открыт извне (с другой машины):",[86,1486,1488],{"className":88,"code":1487,"language":90,"meta":91,"style":91},"nc -zv ваш_сервер_IP 2222\n# Или\nnmap -p 2222 ваш_сервер_IP\n",[46,1489,1490,1504,1509],{"__ignoreMap":91},[95,1491,1492,1495,1498,1501],{"class":97,"line":98},[95,1493,1494],{"class":101},"nc",[95,1496,1497],{"class":104}," -zv",[95,1499,1500],{"class":108}," ваш_сервер_IP",[95,1502,1503],{"class":104}," 2222\n",[95,1505,1506],{"class":97,"line":154},[95,1507,1508],{"class":1014},"# Или\n",[95,1510,1511,1514,1517,1520],{"class":97,"line":165},[95,1512,1513],{"class":101},"nmap",[95,1515,1516],{"class":104}," -p",[95,1518,1519],{"class":104}," 2222",[95,1521,1522],{"class":108}," ваш_сервер_IP\n",[16,1524,1526],{"id":1525},"шаг-4-установка-и-настройка-fail2ban-для-защиты-от-брутфорса","Шаг 4: Установка и настройка Fail2ban для защиты от брутфорса",[21,1528,1529],{},"Fail2ban сканирует логи служб (включая SSH) и блокирует IP-адреса, которые делают слишком много неудачных попыток входа.",[78,1531,1533],{"id":1532},"установка","Установка:",[86,1535,1537],{"className":88,"code":1536,"language":90,"meta":91,"style":91},"# Ubuntu/Debian\nsudo apt install -y fail2ban\n\n# CentOS/RHEL/Rocky (EPEL репозиторий может потребоваться)\nsudo dnf install -y fail2ban\n",[46,1538,1539,1544,1557,1561,1566],{"__ignoreMap":91},[95,1540,1541],{"class":97,"line":98},[95,1542,1543],{"class":1014},"# Ubuntu/Debian\n",[95,1545,1546,1548,1550,1552,1554],{"class":97,"line":154},[95,1547,251],{"class":101},[95,1549,969],{"class":108},[95,1551,981],{"class":108},[95,1553,984],{"class":104},[95,1555,1556],{"class":108}," fail2ban\n",[95,1558,1559],{"class":97,"line":165},[95,1560,1199],{"emptyLinePlaceholder":500},[95,1562,1563],{"class":97,"line":1097},[95,1564,1565],{"class":1014},"# CentOS/RHEL/Rocky (EPEL репозиторий может потребоваться)\n",[95,1567,1568,1570,1572,1574,1576],{"class":97,"line":1103},[95,1569,251],{"class":101},[95,1571,1003],{"class":108},[95,1573,981],{"class":108},[95,1575,984],{"class":104},[95,1577,1556],{"class":108},[78,1579,1581],{"id":1580},"базовая-конфигурация","Базовая конфигурация:",[21,1583,1584],{},"Fail2ban работает с «тюрьмами» (jails). Создадим локальный конфиг, который не будет перезаписан при обновлении:",[86,1586,1588],{"className":88,"code":1587,"language":90,"meta":91,"style":91},"sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local\n",[46,1589,1590],{"__ignoreMap":91},[95,1591,1592,1594,1596,1599],{"class":97,"line":98},[95,1593,251],{"class":101},[95,1595,908],{"class":108},[95,1597,1598],{"class":108}," /etc/fail2ban/jail.conf",[95,1600,1601],{"class":108}," /etc/fail2ban/jail.local\n",[21,1603,1604,1605,264],{},"Отредактируйте ",[46,1606,1607],{},"/etc/fail2ban/jail.local",[86,1609,1611],{"className":1180,"code":1610,"language":1182,"meta":91,"style":91},"[DEFAULT]\n# Время бана (секунды). 1h = 3600\nbantime = 3600\n# Количество попыток до бана\nmaxretry = 5\n# Используемый бэкенд (автоопределение)\nbackend = systemd\n\n# Настройка конкретно для SSH (на вашем порту!)\n[sshd]\nenabled = true\nport = 2222  # Укажите ваш порт! Если оставите `ssh`, fail2ban определит порт из sshd_config.\nfilter = sshd\nlogpath = /var/log/auth.log  # Для Ubuntu/Debian\n# Для CentOS/RHEL: logpath = /var/log/secure\n",[46,1612,1613,1618,1623,1628,1633,1638,1643,1648,1652,1657,1662,1667,1672,1677,1682],{"__ignoreMap":91},[95,1614,1615],{"class":97,"line":98},[95,1616,1617],{},"[DEFAULT]\n",[95,1619,1620],{"class":97,"line":154},[95,1621,1622],{},"# Время бана (секунды). 1h = 3600\n",[95,1624,1625],{"class":97,"line":165},[95,1626,1627],{},"bantime = 3600\n",[95,1629,1630],{"class":97,"line":1097},[95,1631,1632],{},"# Количество попыток до бана\n",[95,1634,1635],{"class":97,"line":1103},[95,1636,1637],{},"maxretry = 5\n",[95,1639,1640],{"class":97,"line":1212},[95,1641,1642],{},"# Используемый бэкенд (автоопределение)\n",[95,1644,1645],{"class":97,"line":1217},[95,1646,1647],{},"backend = systemd\n",[95,1649,1650],{"class":97,"line":1223},[95,1651,1199],{"emptyLinePlaceholder":500},[95,1653,1654],{"class":97,"line":1229},[95,1655,1656],{},"# Настройка конкретно для SSH (на вашем порту!)\n",[95,1658,1659],{"class":97,"line":1235},[95,1660,1661],{},"[sshd]\n",[95,1663,1664],{"class":97,"line":1240},[95,1665,1666],{},"enabled = true\n",[95,1668,1669],{"class":97,"line":1246},[95,1670,1671],{},"port = 2222  # Укажите ваш порт! Если оставите `ssh`, fail2ban определит порт из sshd_config.\n",[95,1673,1674],{"class":97,"line":1251},[95,1675,1676],{},"filter = sshd\n",[95,1678,1679],{"class":97,"line":1257},[95,1680,1681],{},"logpath = /var/log/auth.log  # Для Ubuntu/Debian\n",[95,1683,1684],{"class":97,"line":1262},[95,1685,1686],{},"# Для CentOS/RHEL: logpath = /var/log/secure\n",[21,1688,1689,1690,187],{},"Для CentOS/RHEL также укажите ",[46,1691,1692],{},"logpath = /var/log/secure",[21,1694,1695],{},"Запустите и включите Fail2ban:",[86,1697,1699],{"className":88,"code":1698,"language":90,"meta":91,"style":91},"sudo systemctl start fail2ban\nsudo systemctl enable fail2ban\n",[46,1700,1701,1711],{"__ignoreMap":91},[95,1702,1703,1705,1707,1709],{"class":97,"line":98},[95,1704,251],{"class":101},[95,1706,287],{"class":108},[95,1708,1076],{"class":108},[95,1710,1556],{"class":108},[95,1712,1713,1715,1717,1719],{"class":97,"line":154},[95,1714,251],{"class":101},[95,1716,287],{"class":108},[95,1718,1087],{"class":108},[95,1720,1556],{"class":108},[21,1722,1723],{},"Проверьте статус «тюрьмы»:",[86,1725,1727],{"className":88,"code":1726,"language":90,"meta":91,"style":91},"sudo fail2ban-client status sshd\n",[46,1728,1729],{"__ignoreMap":91},[95,1730,1731,1733,1736,1738],{"class":97,"line":98},[95,1732,251],{"class":101},[95,1734,1735],{"class":108}," fail2ban-client",[95,1737,1037],{"class":108},[95,1739,293],{"class":108},[21,1741,1742],{},"В выводе будет текущее количество забаненных IP.",[16,1744,1746],{"id":1745},"шаг-5-применение-изменений-и-тестовое-подключение","Шаг 5: Применение изменений и тестовое подключение",[21,1748,1749,1752],{},[35,1750,1751],{},"Критически важный этап."," Не разрывайте текущую активную SSH-сессию до проверки!",[875,1754,1755,1779,1803,1840,1847],{},[32,1756,1757,1760,1775,1778],{},[35,1758,1759],{},"Проверьте синтаксис конфигурации SSH:",[86,1761,1763],{"className":88,"code":1762,"language":90,"meta":91,"style":91},"sudo sshd -t\n",[46,1764,1765],{"__ignoreMap":91},[95,1766,1767,1769,1772],{"class":97,"line":98},[95,1768,251],{"class":101},[95,1770,1771],{"class":108}," sshd",[95,1773,1774],{"class":104}," -t\n",[1776,1777],"br",{},"Если вывод пустой — синтаксис корректен.",[32,1780,1781,1784],{},[35,1782,1783],{},"Перезагрузите службу SSH:",[86,1785,1787],{"className":88,"code":1786,"language":90,"meta":91,"style":91},"sudo systemctl reload ssh  # или sshd\n",[46,1788,1789],{"__ignoreMap":91},[95,1790,1791,1793,1795,1798,1800],{"class":97,"line":98},[95,1792,251],{"class":101},[95,1794,287],{"class":108},[95,1796,1797],{"class":108}," reload",[95,1799,222],{"class":108},[95,1801,1802],{"class":1014},"  # или sshd\n",[32,1804,1805,1808,1809,1830,1832,1833,1836,1837,187],{},[35,1806,1807],{},"Из НОВОГО терминала"," (не закрывайте старый!) попробуйте подключиться к серверу:",[86,1810,1812],{"className":88,"code":1811,"language":90,"meta":91,"style":91},"# Укажите ваш порт (-p) и имя пользователя\nssh -p 2222 your_username@ваш_сервер_IP\n",[46,1813,1814,1819],{"__ignoreMap":91},[95,1815,1816],{"class":97,"line":98},[95,1817,1818],{"class":1014},"# Укажите ваш порт (-p) и имя пользователя\n",[95,1820,1821,1823,1825,1827],{"class":97,"line":154},[95,1822,58],{"class":101},[95,1824,1516],{"class":104},[95,1826,1519],{"class":104},[95,1828,1829],{"class":108}," your_username@ваш_сервер_IP\n",[1776,1831],{},"Подключение должно пройти ",[35,1834,1835],{},"только с использованием SSH-ключа",". Ввод пароля должен завершаться ошибкой ",[46,1838,1839],{},"Permission denied (publickey)",[32,1841,1842,1843,1846],{},"Если подключение прошло успешно — ",[35,1844,1845],{},"теперь можно"," разорвать старую сессию (если она была по паролю) и работать только через новую, защищённую.",[32,1848,1849,1850,1868,1870],{},"Проверьте, что старый порт 22 больше не слушается (если вы его убрали из конфига):",[86,1851,1852],{"className":88,"code":1112,"language":90,"meta":91,"style":91},[46,1853,1854],{"__ignoreMap":91},[95,1855,1856,1858,1860,1862,1864,1866],{"class":97,"line":98},[95,1857,251],{"class":101},[95,1859,1121],{"class":108},[95,1861,1124],{"class":104},[95,1863,219],{"class":218},[95,1865,1129],{"class":101},[95,1867,1132],{"class":108},[1776,1869],{},"Команда ничего не должна вывести.",[16,1872,318],{"id":317},[875,1874,1875,1881,1889,1895,1919],{},[32,1876,1877,1880],{},[35,1878,1879],{},"Подключение работает"," только с SSH-ключом.",[32,1882,1883,1888],{},[35,1884,1885,1886],{},"Попытка входа ",[46,1887,520],{}," завершается ошибкой.",[32,1890,1891,1894],{},[35,1892,1893],{},"Подключение на старом порту 22"," (если он удалён из конфига) не устанавливается.",[32,1896,1897,1900,1901,1904,1905],{},[35,1898,1899],{},"Fail2ban активен:"," попробуйте сделать 6 неудачных попыток входа (например, 6 раз ввести неправильный пароль, если по какой-то причине ",[46,1902,1903],{},"PasswordAuthentication"," временно включён). Затем проверьте список забаненных IP:\n",[86,1906,1907],{"className":88,"code":1726,"language":90,"meta":91,"style":91},[46,1908,1909],{"__ignoreMap":91},[95,1910,1911,1913,1915,1917],{"class":97,"line":98},[95,1912,251],{"class":101},[95,1914,1735],{"class":108},[95,1916,1037],{"class":108},[95,1918,293],{"class":108},[32,1920,1921,1924],{},[35,1922,1923],{},"Фаервол"," открывает только нужный порт (2222) и закрывает 22.",[16,1926,354],{"id":353},[78,1928,1930,1931,1161,1934],{"id":1929},"ошибка-connection-refused-или-no-route-to-host","❌ Ошибка ",[46,1932,1933],{},"Connection refused",[46,1935,1936],{},"No route to host",[29,1938,1939,1945],{},[32,1940,1941,1944],{},[35,1942,1943],{},"Причина:"," Фаервол не пропускает новый порт или служба SSH не запущена.",[32,1946,1947,1950,1951,1954,1955,1161,1958,1961,1962,187],{},[35,1948,1949],{},"Решение:"," Проверьте статус службы (",[46,1952,1953],{},"systemctl status ssh",") и правила фаервола (",[46,1956,1957],{},"sudo ufw status",[46,1959,1960],{},"sudo firewall-cmd --list-all","). Убедитесь, что вы открыли порт ",[35,1963,1964],{},"на внешнем интерфейсе",[78,1966,1930,1968,1971],{"id":1967},"ошибка-permission-denied-publickeypassword-при-тестовом-подключении",[46,1969,1970],{},"Permission denied (publickey,password)"," при тестовом подключении",[29,1973,1974,1985,1994,2000,2027,2037],{},[32,1975,1976,1979,1980,1982,1983,567],{},[35,1977,1978],{},"Причина 1:"," Ваш публичный ключ (",[46,1981,558],{},") не добавлен в ",[46,1984,186],{},[32,1986,1987,1989,1990,1993],{},[35,1988,1949],{}," Добавьте ключ с помощью ",[46,1991,1992],{},"ssh-copy-id -p 2222 your_username@server"," или вручную.",[32,1995,1996,1999],{},[35,1997,1998],{},"Причина 2:"," Неправильные права на файлы/директории на сервере.",[32,2001,2002,2004,2005],{},[35,2003,1949],{}," На сервере выполните:\n",[86,2006,2008],{"className":88,"code":2007,"language":90,"meta":91,"style":91},"chmod 700 ~/.ssh\nchmod 600 ~/.ssh/authorized_keys\n",[46,2009,2010,2018],{"__ignoreMap":91},[95,2011,2012,2014,2016],{"class":97,"line":98},[95,2013,145],{"class":101},[95,2015,148],{"class":104},[95,2017,151],{"class":108},[95,2019,2020,2022,2024],{"class":97,"line":154},[95,2021,145],{"class":101},[95,2023,159],{"class":104},[95,2025,2026],{"class":108}," ~/.ssh/authorized_keys\n",[32,2028,2029,2032,2033,2036],{},[35,2030,2031],{},"Причина 3:"," Вы включили ",[46,2034,2035],{},"PasswordAuthentication no",", но пытаетесь подключиться по паролю.",[32,2038,2039,2041],{},[35,2040,1949],{}," Подключайтесь с ключом. Если ключ потерян — вам понадобится доступ через консоль для его восстановления.",[78,2043,2045],{"id":2044},"я-заблокировал-себя-fail2ban-или-неправильный-порт","❌ Я заблокировал себя (Fail2ban или неправильный порт)",[29,2047,2048],{},[32,2049,2050,2052,2053,2056,2057],{},[35,2051,1949],{}," Вам ",[35,2054,2055],{},"обязательно нужен альтернативный доступ"," (консоль хостинга, KVM). Через неё:\n",[875,2058,2059,2065,2071,2080,2085],{},[32,2060,2061,2062,187],{},"Проверьте, забанен ли ваш IP: ",[46,2063,2064],{},"sudo fail2ban-client status sshd",[32,2066,2067,2068,187],{},"Если да — разбаньте его: ",[46,2069,2070],{},"sudo fail2ban-client set sshd unbanip ваш_IP",[32,2072,2073,2074,2076,2077,66],{},"Проверьте конфиг ",[46,2075,48],{}," на ошибки (",[46,2078,2079],{},"sudo sshd -t",[32,2081,2082,2083,187],{},"Перезапустите SSH: ",[46,2084,780],{},[32,2086,2087],{},"Проверьте фаервол.",[78,2089,2091],{"id":2090},"на-centosrhel-не-работает-fail2ban-или-блокирует-всё","❌ На CentOS/RHEL не работает Fail2ban или блокирует всё",[29,2093,2094,2110],{},[32,2095,2096,2098,2099,2102,2103,2106,2107,187],{},[35,2097,1943],{}," Неправильный ",[46,2100,2101],{},"logpath",". В CentOS логи SSH пишутся в ",[46,2104,2105],{},"/var/log/secure",", а не в ",[46,2108,2109],{},"/var/log/auth.log",[32,2111,2112,2114,2115,2117,2118,2121,2122,187],{},[35,2113,1949],{}," В ",[46,2116,1607],{}," для ",[46,2119,2120],{},"[sshd]"," укажите ",[46,2123,1692],{},[78,2125,2127,2128,2130],{"id":2126},"после-смены-порта-sshd-не-стартует","❌ После смены порта ",[46,2129,409],{}," не стартует",[29,2132,2133,2138],{},[32,2134,2135,2137],{},[35,2136,1943],{}," Порт уже занят другим процессом или указан некорректно (например, буквенный символ).",[32,2139,2140,2142,2143,2146,2147,583,2149,2151],{},[35,2141,1949],{}," Убедитесь, что порт свободен: ",[46,2144,2145],{},"sudo ss -tlnp",". Проверьте синтаксис ",[46,2148,625],{},[46,2150,2079],{},"). Убедитесь, что порт числовой и в диапазоне 1-65535.",[230,2153],{},[78,2155,2157],{"id":2156},"selinuxapparmor-блокирует-ssh-на-нестандартном-порту","❌ SELinux/AppArmor блокирует SSH на нестандартном порту",[29,2159,2160,2168,2208],{},[32,2161,2162,2164,2165,2167],{},[35,2163,1943],{}," SELinux по умолчанию разрешает ",[46,2166,409],{}," слушать только порт 22.",[32,2169,2170,2173,2203,2204,2207],{},[35,2171,2172],{},"Решение (для SELinux):",[86,2174,2176],{"className":88,"code":2175,"language":90,"meta":91,"style":91},"sudo semanage port -a -t ssh_port_t -p tcp 2222\n",[46,2177,2178],{"__ignoreMap":91},[95,2179,2180,2182,2185,2188,2191,2193,2196,2198,2201],{"class":97,"line":98},[95,2181,251],{"class":101},[95,2183,2184],{"class":108}," semanage",[95,2186,2187],{"class":108}," port",[95,2189,2190],{"class":104}," -a",[95,2192,105],{"class":104},[95,2194,2195],{"class":108}," ssh_port_t",[95,2197,1516],{"class":104},[95,2199,2200],{"class":108}," tcp",[95,2202,1503],{"class":104},"\n(Пакет ",[46,2205,2206],{},"policycoreutils-python-utils"," может потребоваться).",[32,2209,2210,2213,2214,187],{},[35,2211,2212],{},"Решение (для AppArmor):"," Обычно не требуется, но если есть проблемы, проверьте профиль ",[46,2215,2216],{},"/etc/apparmor.d/usr.sbin.sshd",[436,2218,2219],{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}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}",{"title":91,"searchDepth":154,"depth":154,"links":2221},[2222,2223,2224,2228,2231,2235,2239,2240,2241],{"id":18,"depth":154,"text":19},{"id":26,"depth":154,"text":27},{"id":949,"depth":154,"text":950,"children":2225},[2226,2227],{"id":956,"depth":165,"text":957},{"id":990,"depth":165,"text":991},{"id":1144,"depth":154,"text":1145,"children":2229},[2230],{"id":1176,"depth":165,"text":1177},{"id":1342,"depth":154,"text":1343,"children":2232},[2233,2234],{"id":1349,"depth":165,"text":1350},{"id":1423,"depth":165,"text":1424},{"id":1525,"depth":154,"text":1526,"children":2236},[2237,2238],{"id":1532,"depth":165,"text":1533},{"id":1580,"depth":165,"text":1581},{"id":1745,"depth":154,"text":1746},{"id":317,"depth":154,"text":318},{"id":353,"depth":154,"text":354,"children":2242},[2243,2245,2247,2248,2249,2251],{"id":1929,"depth":165,"text":2244},"❌ Ошибка Connection refused или No route to host",{"id":1967,"depth":165,"text":2246},"❌ Ошибка Permission denied (publickey,password) при тестовом подключении",{"id":2044,"depth":165,"text":2045},{"id":2090,"depth":165,"text":2091},{"id":2126,"depth":165,"text":2250},"❌ После смены порта sshd не стартует",{"id":2156,"depth":165,"text":2157},"2026-02-16 14:07:02","Пошаговая инструкция по установке, настройке и защите SSH-сервера (OpenSSH) на Ubuntu/Debian/CentOS. Узнайте, как ограничить доступ, сменить порт, настроить ключи и отключить root-логин. Готовые команды.","20-30 мин",[2256,2259,2262,2265],{"question":2257,"answer":2258},"Почему после настройки SSH я не могу подключиться к серверу?","Чаще всего это связано с неправильными настройками в `sshd_config` (например, изменённый порт без открытия в фаерволе), блокировкой IP из-за неудачных попыток (fail2ban) или отсутствием правильного SSH-ключа. Проверьте логи (`journalctl -u ssh`) и правила фаервола.",{"question":2260,"answer":2261},"Можно ли настроить SSH без перезагрузки сервера?","Да, после изменения конфигурационного файла `sshd_config` достаточно перезапустить службу команды `sudo systemctl reload sshd` (или `sudo service ssh restart`). Полный перезапуск не требуется.",{"question":2263,"answer":2264},"Как восстановить доступ, если закрыл себя из-за неправильной настройки?","Вам понадобится доступ к консоли сервера (IPMI, KVM, физический монитор). В консоли исправьте `/etc/ssh/sshd_config`, затем перезапустите службу. Восстановите резервную копию конфига, если она была.",{"question":2266,"answer":2267},"Обязательно ли отключать аутентификацию по паролю?","Для серверов, доступных из интернета, это **настоятельно рекомендуется**. Атаки перебора паролей (brute-force) — самая распространённая угроза. Используйте только ключи SSH. Для внутренних сетей оценьте риски.",[2269,2272,2275,2278,2281,2284],{"name":2270,"text":2271},"Установите OpenSSH-сервер","Установите пакет `openssh-server` через системный менеджер пакетов (apt, yum/dnf). Служба запустится автоматически.",{"name":2273,"text":2274},"Проверьте статус и запуск службы","Убедитесь, что демон `sshd` активен и настроен на автозапуск. Проверьте, слушает ли сервер порт 22.",{"name":2276,"text":2277},"Настройте базовую безопасность в sshd_config","Отредактируйте главный конфиг-файл: смените порт, отключите вход root, запретите аутентификацию по паролю, ограничьте пользователей.",{"name":2279,"text":2280},"Настройте фаервол и SELinux/AppArmor","Откройте новый порт SSH в фаерволе (ufw, firewalld). Убедитесь, что SELinux/AppArmor не блокируют подключения.",{"step":2282,"text":2283},"Настройте защиту от брутфорса (Fail2ban)","Установите и настройте Fail2ban для автоматического блокирования IP после нескольких неудачных попыток входа.",{"step":2285,"text":2286},"Перезагрузите службу и проверьте подключение","Примените изменения, перезапустите `sshd` и протестируйте новое подключение из другого терминала, не разрывая текущую сессию.","PT25M",[2289,2290,2291,2292,2293,2294,2295,2296,2297,2298],"настройка ssh сервера linux","установка openssh server ubuntu","безопасный ssh конфиг","отключение root логина ssh","смена порта ssh","ssh ключи аутентификация","fail2ban ssh настройка","ошибка Permission denied (publickey) ssh","конфиг sshd_config","управление доступом ssh",{},[2301,2302,2303],"/guides/linux/configure-ssh-client","/errors/linux/ssh-connection-refused","/guides/linux/ufw-firewall-setup",{"title":809,"description":2253},"guides/linux/configure-ssh-server","В этом руководстве вы научитесь безопасно настроить SSH-сервер на Linux: от базовой установки до продвинутых мер защиты. Вы получите контроль над удалённым доступом к серверу.",[58,513,2308,502,2309,2310,2311],"администрирование","openssh","firewall","server","o7iaOCbM5NUrloDTwegJ8_45ubn1JZsuauLRAFNeWk8"]