Настраиваем аутентификацию SSH по ключу в Linux / Unix
HTML-код
- Опубликовано: 23 фев 2019
- Мой курс «Хардкорная веб-разработка» - course.to.digital
Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: botanim.to.digital/
Telegram: t0digital.t.me
Сказать спасибо за это видео можно здесь - boosty.to/digitalize.team
Заходить (авторизоваться) на сервер по SSH можно, используя пару логин-пароль, а можно, используя пару публичного и приватного ключа, причём именно использование ключей является способом предпочтительным. Почему? Во-первых, вход по SSH ключам безопаснее, во-вторых, удобнее. Как это настроить и использовать - об этом пойдёт речь в очередном видео, а заодно обсудим настройку серверного SSH, запрет входа root пользователем, запрет входа по паролю и другие важные фичи. Поехали!
Разбираемся с Tmux - • Tmux - что это и зачем...
Изучаем Vim - • Изучаем Vim, команды и...
Быстрое копирование многогигабайтных файлов в *nix - • Эффективно копируем ги...
/****************** about ******************/
Меня зовут Алексей Голобурдин, я программирую с 2004 года и на этом канале делюсь своим опытом. Я основатель и руководитель компаний:
- Диджитализируй digitalize.team, разрабатываем сложные IT системы для бизнеса;
- Salesbeat salesbeat.pro, комплексный модуль доставки для интернет магазинов.
Если у вас есть проект на разработку, пишите нам на hi@digitalize.team.
С другими предложениями, а также если вам нужна одна или несколько индивидуальных консультаций/уроков по разработке (3000 руб/час), пишите мне на alexey@salesbeat.pro.
Telegram канал - t.me/t0digital
ВК - digitalize.team
RuTube - rutube.ru/channel/24802975/ab...
Дзен - dzen.ru/id/6235d32cb64df01e6e...
Мой курс «Хардкорная веб-разработка» - course.to.digital
Вжух!
Вот такие короткие и емкие видосы прям маст хэв
Очень полезное видео, особенно для тех кто начинает знакомство с Линукс, продолжай так же, любые знания-пригодятся!
Спасибо
Спасибо, очень грамотно и понятно объясняешь! Побольше бы таких роликов)
Работаем над этим! Спасибо:)!
Спасибо за это видео! Столько статей перечитала, не могла настроить вход по ключам, а в вашем видео все по полочкам и сразу получилось!
о, отлично, спасибо!
Как всегда кратко и по делу. Спасибо, поставил авторизацию по ключам.
Как всегда просто и понятно=) Спасибо!
Спасибо) Сегодня пишу Юниттесты и смотрю твои видео на фоне, помогает не умереть со скуки:)
Очень бы хотелось увидеть от вас видео урок по поднятию OpenVPn серверу на Debian, его конфигурацию и так далее
Вот смотрю ваши ролики и вы наверное единственный кто так понятно объясняет
Спасибо! Сделаем:)
Спасибо за вашу работу, просто коротко и круто. Можете сделать видео по работе с Git . По работе некоторых команд в консоли ( awk, sed, grep,find). Огромное спасибо за Ваш труд. С уважением.
Сделаем! Спасибо
Примеров в сети вагон, на все перечисленные программы. Просто нужно написать в поиске "sed\awk\find примеры".
При всем многообразии роликов на эту тему - самый короткий и понятный! Снимаю шляпу!
Понадобилось вспомнить-по быстрому как добавить ключи на сервере, так вспомнил только после этого ролика как делал 5 лет назад...
Огромнейшее спасибо! Только начинаю осваивать стезю, вечер провозился с запарой "Permission denied (publickey)". Ни где не мог добиться конкретных инструкций, что и как делать. А у тебя всё просто и доходчиво. Респект!
Отлично, рад, что полезно!
+1 такая же проблем
а была, а тут одна команда и все заработало!
Быстро и четко, спасибо!
Лучшее видео что я видел для этой темы, с первого раза все ясно😃
Рад, что полезно!
Больше простых тем!!!
Спасибо!
Полезная памятка) Всем вкусного чайку!
Админская работа ещё тот вынос мозга. Столько тонкостей нужно знать.
Привет! Сейчас учусь на курсах, дали задание научиться подключаться по SSH-ключам. Спасибо за это видео!
Очень полезно. Спасибо!
Супер, очень интересно, спасибо)
Спасибо за вашу работу!
От себя бы попросил не игнорировать такие, пускай даже очень простые, темы :)
Отлично, спасибо!
Да это лучшее объяснение по теме ssh keys которое я видел в русском и английском you tube!
Спасибооо!
Команда ssh-copy-id прямо спасла. До этого многократно сам пытался копировать эти ключи, там упорно возникали ошибки. Спасибо!
Спасибо, отличная инструкция!
Только после этого видео вкурил .) Спасибо автор
Коротко и ясно!
Очень интересно!!!
Благодарю за видео!
спасибо, очень полезно)
💪
Спасибо за столь полезный выпуск. Думаю, ещё стоит заменить номер порта с 22 на какой-то иной свободный. После такой замены поток брутфорса на порт 22 прекращается (поскольку его уже нет) и /var/log/auth.log перестаёт заполняться тоннами логов о попытках левых коннектов.
Тогда fail2ban тоже стоит добавить :)
выручил спасибо! большое!
Интересно!!!!!!!! Спасибо.....
Круто👍👍👍
Спасибо, молодец! Продолжай тему Linux..
супер!!!спасибо!!!!!!!
Спасибо! Спасибо Спасибо!
Наверное можно было-бы еще упомянуть о возможностях, предоставляемым файлом .ssh/config - удобная фишка, если у вас есть много разных серверов, пользователей, портов и ключей...
Спасибо! Да, штука очень удобная, спасибо. Доснимем про это
Опа, теперь это видео в рекомендациях вышло как в дополнение в недавнему про SSH alias.
Алгоритмы ютуба подсуетились
Спасибо! Очень нужная информация. На 1:29 оговорка, вместо "по SSH ключам" должно быть "по паролю".
В точку)
Теперь знаю. Спасибо!
Йеее💪
Отличное видео просто класс. После того как помшаманил я совсем подерял доступ к своему серваку. Пришлось удалить и заново переделать. Лайк.
Можно бы ло бы и показать что делать в таком случае т.к. в инете я не нашел норм инфу
Вижу что для "очистки" терминала используете "cls", что скорее всего является алиасом (alias cls = "clear").
Рекомендую для этого просто воспользоваться командой Ctrl + L.
Да, последнее время CTRL+L вытеснил cls для меня:) спасибо!
Выполняю свою кармический задачу данным комментарием.
Спасибо:)!
Спасибо! Когда сумел запустить сервер, руководствовался этим видео.
Каэш оплату яндекс сервака я не осилил, но на ноуте получилось.
Кстати, если вы еще сидите на винде, то в powershell не работает ssh-copy-id. Я, желая сделать как можно быстрее, полез за файлом-ключом в папку и кинул на сервак через флешку. Мб есть более элегантные решения.
Кст подписался, видос с обсидианом крутой, почерпнул для себя датувью
Спасибо друг!
спасибо!
Замечательно! Предлагаю дополнить про winscp, чтобы с windows хостов можно было использовать не только open ssh, но и например putty или far netbox. И можно показать как сделать на каком-нибудь коммутаторе. Я на eltex mes 2324 делал.
Топ. Барин требует еще
Так точно, будем продолжать!
Этого же мало. Было бы неплохо рассказать про ssh passphrase, ssh-agent и про то как подружить passphrase с ssh-agent.
Приветствую! Спасибо за видео, очень сейчас актуальная тема. Только вот сложно все для нубасов. Даже не могу сохранить файл в терминале после изменения параметра PasswordAuthentification - no (( Если просто закрываю терминал, то потом открывается в recovery режиме. В общем пожелание: по возможности комментировать все действия без пропусков, иначе подобные видосы не имеют смысла, опытные итак знают что и куда нажимать. Спасибо!
спасибо
Полезно
Мне как новичку не понятно было, что генерировать ключ надо на домашнем устройстве, а отправлять публичный ключ на сервак. Хорошо, что я бэкап сервера сделал перед изменением конфиг файла, так как успел изменить конфиг файл и перегзагрузит сервис ssh ))
Хотя сейчас подразобрался в структуре линуксовых папок. в целом можно было и на сервере ключ сгенерить, но тогда надо было бы его скопировать на домашний комп в соответствующую директорию.
если генерить ключи на сервере, то надо на домашнем компе использовать команду ssh-import-id ... . если я правильно понял документацию.
Респект за просвящение народа.
Вопросы:
2:19 - Ключи надо сгенерить. Окей. Сгенерить надо где? На клиенте или сервере?
Теперь держите мою инструкцию для полных нулей как я!!!
Генерировать ключ необходимо на клиенте. Приватный остаётся у вас. Публичный мы должны передать на сервер. Приватный ключ мы будет использовать для аутентификации.
! Публичный ключ можно передать на несколько серверов, к которым мы планируем подключаться. Тогда мы сможешь подключаться к нескольким серверам по одному приватному ключу (не нужно генерировать новые).
Какую кодировку ключа выбрать? ed25519 считается оптимальным решением.
Как будет выглядеть команда генерации ed25519 ключа?
ssh-keygen -t ed25519
(где "-t" означает "type")
Как передать публичный ключ на сервер? (ssh-copy-id хороший метод. Но я предпочитаю понимать, че там внутри происходит).
1. Находим наш ранее сгенеренный ПУБЛИЧНЫЙ ключ (/Users/yourName/.ssh/имя_ключа). По умолчанию имя будет id_ed25519.pub (я переименовываю ключи в key и key.pub)
2. Выводим его в консоль (cat имя_ключа).
3. Копируем
4. Идем на сервер. Подключаемся по ssh (пока с паролем).
5. Ищем на сервере файл /.ssh/authorized_keys (его скорее всего не будет и вы должны будете создать его (touch authorized_keys)).
6. Открываем его в вставляем в него публичный ключ. Сохраняем и выходим.
7. Устанавливаем правильное разрешение на файл (chmod 600 authorized_keys) (хз для чего. для безопасности, наверное).
8. На сервере идём в файл /etc/ssh/sshd_config для того чтобы убедиться, что там включена аутентинтификация по ключу (PubkeyAuthentication). Лично у меня эта строка закомментирована.
9. Перезапускаем ssh службу на сервере, чтобы применить изменения (sudo service ssh restart).
Закрываем ssh соединение с сервером (у меня это делается через exit)
Подключаемся к серверу по ssh вновь. Убеждаемся в том что сервер НЕ запрашивает пароль ...
Сервер запрашивает пароль вновь.
Че делать? Попробуем подключить к серверу с нашим ключом, указав к нему путь вручную:
ssh -i путь_к_приватному_ключу пользователь@хост
Получилось подключиться? У меня получилось.
Значит проблема не в сервере, а в клиенте. Клиент не понимает, какой ключ он должен использовать при подключении к моему серверу. Я не указал этого явно и в этом ошибка!
1. НА КЛИЕНТЕ Создаём файл config в папке .ssh (touch config)
2. Добавляем в него строки (nano config)
"Host адрес_хоста
IdentityFile путь_к_приватному_ключу"
Пробуйте подключиться к серверу снова! Вуаля. Поздравляю, если у вас все получилось.
Обратите внимание на файл config. Добавив в него дополнительные строки вы можете добавить себе удобства:
Host serverName
Hostname адрес_хоста
User имя_пользователя_на_сервере
IdentityFile полный_путь_к_приватному_ключу
Теперь вы сможете подключиться к серверу по ssh используя команду:
ssh serverName
Теперь можете отключить доступ по паролю
P.S. т.е. Приватный ключ - это ключ. Публичный ключ - это замОк. Мы ставим дверь на наш сервер. Вешаем на неё свой замок (публичный ключ). Себе оставляем приватный ключ (ключ). И дальше ходим на сервер как к себе домой. Так же мы можем повесить на другие двери (серверы) точно такой же замок. И тогда по нашему ключу мы сможем ходить уже в несколько "дверей"
PSS бля по ходу придется записать подробный видео-туториал. Ставьте лайк, если это кому-то вообще надо.
Топ. Реально намного понятно. А то я через PuTTy сижу, и для меня половина действий приходится нагугливать.
Еще такой вопрос: Говорят, отключи вход по паролю. То есть совсем отключить вход по паролю? И тогда использовать только вход по ключу? А что если с моим пк что нибудь произойдет (полетит система, или просто жесткий сломается), а у меня проект большой под ключом ssh? Как тогда быть? Логин и пароль был бы (не root пользователь), я бы смог авторизоваться, зная пароль
@@gbushmakinБэкап приватного ключа, либо всегда есть возможность зайти на сервер через терминал в браузере на самом сайте провайдера
брат что бы я без тебя делал
вместе видео, можно просто скрин этого комента вставить, куда полезнее будет) спасибо.
крутой канал крутой ведущий
Спасибооо!
по предыдущим видео:
vim - использую но не активно
tmux - видел но не знал что это, попробую в работе
htop - использовал просто top, перейду теперь на htop
про копирование файлов через nc не знал, спасибо
ssh ключи использую
В видео скорее интересны детали, и подача с в новом свете.
Отлично, рад, что было чем-то полезно!
Спасибо за видеоинструкцию. Хорошо и на практике показали, что нужно для быстрой настройки.
Один моменты вот здесь ruclips.net/video/IVHv3eVQa14/видео.html, вы говорите об одной и той же авторизации по разному, скорей всего имеется ввиду различие по удобности доступа по логин-пароль и ssh-ключу.
круть!
Спасибо за вашу работу, просто коротко и круто!!!!
Можите сделать ключ удаленных серверов SSH на USB насителе) при подключение USB-Fleh с определенным ID стартует скрипт и ставит сесии на сервера, конектися к хостам?)
Я узнал об этой фишке когда подключился к телнет порту, и вот тут я начал гуглить)
Познавательно
Спасибо за отзыв!
спасибо за вашу работу все понятно один вопрос меня мучает все время в ручную копировать публичный ключ
нужно с до канца или root@IP_host не нужно
Надо уже выпустить видео о перехвате ssh ключа и использовании его для доступа на сервер.
Спасибо за видео! Очень познавательно! Лайк и подписка! Вопрос - у меня сервак на Виндовсе. Я люблю работать на нем через МС Ремот Десктоп. Нужно ли мне делать этот ссш ключ? И если я его сделаю, смогу ли я заходить на сервак через МС Ремот Десктоп ? Мне важно работать на серваке не через терминал, а именно через графический интерфейс
Было бы интересно узнать про ссх туннелирование 2х хостов с 3-го хоста-посредника, при том что для доступа на каждый из 2х хостов требуется своя роль (с уже настроенным бесключевым доступом), и никакой связи кроме как через посредника хосты не имеют. Вот такую задачку решить не смог.
Туннель у меня для объединения в сеть компов, подключенных к разным провайдерам. Пришлось потратить не один час, чтобы разобраться с маршрутизацией.
Добрый день! Какая тогда best-practice для добавления ключа нового пользователя? Т.е. появился новый админ, вручную создали пользователя и вручную его ключик положили? Ну, или плейбук.
Бро миллион раз спасибо!!! Еще бы видео как на двух компьютерах настроить доступ outline meneger настроить к 1 серверу, весь инет перерыл, нигде нет инфы
Я уже знаю =)
Да, я тоже потиху локально сервер настраиваю. Нужен будет сайт, датабаза / вики
Осторожно с чаем, есть опасные сорта))) При настройке доступа по ssh меняю переменную #port на нестандартные, и диапазон ip в локальной сети. Кулцхакеров нынче много развелось... Спасибо за видео, хоть и знаю все это, смотреть очень интересно. Респект
Йеее! Спасибо, приятно - будем продолжать!
@@t0digital конечно продолжайте. Супер контент. подача, харизма все на высоте.
@@bessonov_mr только одно "но" - смена порта, ни как не влияет на обнаружение ssh. Лучше всего от попыток подбора, поможет правильно настроенный фаервол.
Без ключей геморрой и проблемы с брутом. Стоит завести белый ип, как лог с неудачными входами будет состоять из тысяч записей.
От этого отлично помогает настройка файрвола - разрешать доступ к ссш только с подсетей своих провайдеров\мобильных операторов.
Ну это тема известная. Вот было бы полезно еще про защиту от брута fail2ban и sshguard
Огромное, просто гигантское спасибо за этот видосик. Вопрос только остался на предмет того, что доступ на сервер изначально мне был предоставлен как для root.
Как же ему отключить доступ на сервер?
Вот в этом видео ruclips.net/video/FLiKTJqyyvs/видео.html на 60:20 и дальше есть про настройку SSH на сервере, в частности про выключение доступа для рута. Собственно за это отвечает *PermitRootLogin no* в файле */etc/ssh/sshd_config* и потом перезапуск ssh
Как текстовый ключ с терминала начинающийся с Begin, сохранить в папку на Mac в формате pem ? Какой-то программой или через терминал?
Вот еще интересный для чайников вопрос. Админ сервера присылает пакет username.p12 с сообщением, что все прописано, можешь заходить по ssh. Какой порядок действий чайника для организации доступа на сервер без паролей по ключам, запакованным в р12?
За PermitRootLogin сто плюсов. Почему на некоторых Linux он до сих пор о дефолту включен? В BSD не так... Ну и стоит заметить, что в современной реальности, в 2022 году, уже не следует использовать ключи ssh-rsa, лучше использовать криптографию на эллиптических кривых. Не следует трогать /etc/ssh/sshd_config, писать можно только в /etc/ssh/sshd_config.d/my_config.conf или типа того, иначе придётся мержить или восстанавливать конфиги при апдейтах.
верно ли понимаю, команда ssh-keygen создаёт RSA ключ 2048 бит,
имеет смысл заморачиваться, используя не дефолтный вариант, с эллептической кривой (ed25519)?
Разумеется, рассуждая вне парадигмы квантовых медвежатников...
Супер! Хотя остался вопрос: если хотим иметь доступ по ssh-ключу под одним пользователем с разных машин: приватный ключ с одной машины на другую копировать ?
И ведь если мы генерируем ключи у себя на машине, то получается мы будем использовать одну и туже пару ключей для доступа к разным серверам, если у нас их несколько ?
А значит перенос ключей в какой-то степени компроментирует доступ ко всем этим серверам. Или на флешке носить как банковские ключи ?
нет, надо копировать публичный ключ со всех машин на сервер. То есть с каждой машины, откуда хотим заходить на сервер, делаем ssh-copy-id
@@t0digital понял, на самом сервере к юзеру привязываются несколько публичных ключей. Спасибо!
@@mentatij да, все так
А как скопировать ключ с другой машины если вход по паролю запрещен?
Про ssh-agent не рассказано. Проброс ключа агентом тоже не освещён (ForwardAgent yes). Манипуляции со множеством ключей тоже замолчали
На предыдущей работе мы подключались к девелоперским серверам использую SSL-сертификаты. Не успел я разобраться как эта тема настраивается.
Спасибо за информацию, я так настроил доступ к серверу, отключил вход по паролю. Решил второй сервер подключить и перегенерировал ключ. Теперь при доступе к своему первому серверу пишет вот это: Permission denied (publickey,gssapi-keyex,gssapi-with-mic). Выходит я потерял доступ к серверу? Подскажите пожалуйста. По сути в маке настроена тайм машина, можно поднять старый ключ. Или есть какое то другое решение?
Вот бы ещё кто показал как регистрироваться/авторизовываться по SSH-ключу на всяко разных сайтах с гос. услугами; интернет магазинами; форумами и в прочих злачных местах на которых можно только через WEB-интерфейс работать. А со своим ssh-сервером я уж как нибудь сам совладаю, хоть с ключом хоть с паролем; хоть из под root-пользователя хоть из под nobody.
Аффтар прекрасен :-)
Пиши истчо!
А можно то же , но клиент форточка?
Для форточки, если без WSL, вероятно по-прежнему нужен putty. Он умеет с ключами работать тоже
А вы получается просто в переменную добавили ip сервера?
лайк
Ещё таким образом можно привязать клиента к своей поддержке приложения
Ага, а клиент может привязать разработчика к поддержке приложения с помощью наручников и батареи)
Интересный, а главное простой способ, но что делать, если нужен доступ нескольких пользователей? Каким образом можно реализовать вход по разным ключам? И можно ли реализовать данный способ при подключении с винды?
Он же вначале показал как по ssh ключу заходить. Так же для любого пользователя
Чувак раз уж ты попросил, посмотрел про ssh ключи на другом канале)))
Аминь!
знаю и умею)
темы ахуенные, топ канал
Возник вопрос такого характера, если мы переустанавливаем ОС на которой хранятся ключи, мы их теряем, где в таком случае их лучше хранить?
Где-то:) чтобы потом восстановить
а чо за прога для конекта?
А как эту переменную окружения сделать?
Делаю все по так же как и вы, но все равно просит пароль при входе
Урок топ!
Но есть вопросик, почему root-пользователю нужно запрещать логиниться? root-пользователь, это же человек, который имеет права админа. Я прав? Поэтому почему нет?
Я тоже не понял. А что делать если нужно будет потом залогиниться под root ? Или www тоже админ и его прав для администрирования хватит? Поясните плиз для чайников
root пользователь имеет супер-права, то есть доступ ко всей системе.
Если все команды исполнять с рута, можно нечаянно поломать всю систему, а обычный пользователь (например www) без sudo так не может. И рут-права в принципе не так часто нужны
Глупый вопрос конечно, но всё же. Как сохранить файл? 03:51 объясните пожалуйста.
В принципе ничего нового не увидел, умеем, знаем, для полноты можно было бы ещё рассказать про scp, а так норм
Вопрос от чайника? Сгенерировал ssh, установил на сервер, запускаю putty, идёт запрос имени пароля. Вход по паролю далее не отключал, так как боюсь потом вообще не пустит. Как войти по ssh через putty?
Здравствуйте! А это сработает на Виндоус?