Спасибо за вашу работу, просто коротко и круто. Можете сделать видео по работе с Git . По работе некоторых команд в консоли ( awk, sed, grep,find). Огромное спасибо за Ваш труд. С уважением.
Вопросы: 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 пользователь), я бы смог авторизоваться, зная пароль
Огромнейшее спасибо! Только начинаю осваивать стезю, вечер провозился с запарой "Permission denied (publickey)". Ни где не мог добиться конкретных инструкций, что и как делать. А у тебя всё просто и доходчиво. Респект!
Приветствую! Спасибо за видео, очень сейчас актуальная тема. Только вот сложно все для нубасов. Даже не могу сохранить файл в терминале после изменения параметра PasswordAuthentification - no (( Если просто закрываю терминал, то потом открывается в recovery режиме. В общем пожелание: по возможности комментировать все действия без пропусков, иначе подобные видосы не имеют смысла, опытные итак знают что и куда нажимать. Спасибо!
Мне как новичку не понятно было, что генерировать ключ надо на домашнем устройстве, а отправлять публичный ключ на сервак. Хорошо, что я бэкап сервера сделал перед изменением конфиг файла, так как успел изменить конфиг файл и перегзагрузит сервис ssh )) Хотя сейчас подразобрался в структуре линуксовых папок. в целом можно было и на сервере ключ сгенерить, но тогда надо было бы его скопировать на домашний комп в соответствующую директорию.
Замечательно! Предлагаю дополнить про winscp, чтобы с windows хостов можно было использовать не только open ssh, но и например putty или far netbox. И можно показать как сделать на каком-нибудь коммутаторе. Я на eltex mes 2324 делал.
Если мы закрыли доступ по паролю и нам надо с другой машины получить доступ, мы снова разрешаем доступ по паролю, закидываем публичный ключ и снова закрываем доступ по паролю?
по предыдущим видео: vim - использую но не активно tmux - видел но не знал что это, попробую в работе htop - использовал просто top, перейду теперь на htop про копирование файлов через nc не знал, спасибо ssh ключи использую В видео скорее интересны детали, и подача с в новом свете.
Отличное видео просто класс. После того как помшаманил я совсем подерял доступ к своему серваку. Пришлось удалить и заново переделать. Лайк. Можно бы ло бы и показать что делать в таком случае т.к. в инете я не нашел норм инфу
Добрый день! Какая тогда best-practice для добавления ключа нового пользователя? Т.е. появился новый админ, вручную создали пользователя и вручную его ключик положили? Ну, или плейбук.
Много где говорят, мол рут надо отключать и доступ SSH для рута в конфиге тоже отключать. А в чем состоит увеличение безопасности, если автор не рутовым пользователем отредактировал конфиг файл и выключил рут, что мешает злоумышленнику получив доступ от пользователя, так же в конфиге включить доступ рута? Все равно безопасность базируется на доступе от имени пользователя... получил пользователя, злоумышленник сможет получить и рут. Это не претензия, я начинающий и это именно вопрос. Подозреваю, что я какой-то момент могу упускать, в связи с этим и спрашиваю.
Надо знать пароль пользователя, чтобы от sudo выполнять команды. Вход на сервер осуществляется не по паролю, а по ключу. Получается, что для получения рут-прав нало владеть ключами пользователя с правами sudo и его паролем. Сравним с ситуацией, когда рут-вход включен - надо иметь только ключи этого пользователя или только его пароль (если вход на сервер почему-то не по ключам, что плохо). Иметь что-то одно легче, чем иметь чего-то два. Украсть ключи легче, чем ключи и пароль. Чем легче получить доступ туда, куда не надо - тем ниже безопасность.
Без ключей геморрой и проблемы с брутом. Стоит завести белый ип, как лог с неудачными входами будет состоять из тысяч записей. От этого отлично помогает настройка файрвола - разрешать доступ к ссш только с подсетей своих провайдеров\мобильных операторов.
Бро миллион раз спасибо!!! Еще бы видео как на двух компьютерах настроить доступ outline meneger настроить к 1 серверу, весь инет перерыл, нигде нет инфы
верно ли понимаю, команда ssh-keygen создаёт RSA ключ 2048 бит, имеет смысл заморачиваться, используя не дефолтный вариант, с эллептической кривой (ed25519)? Разумеется, рассуждая вне парадигмы квантовых медвежатников...
Хм, пароль можно подобрать, но он, как правило, нигде не записан. А папочку .ssh теоретически можно слить злоумышленнику и тогда ничего подбирать не надо будет - он сразу попадёт на удаленный сервер?? А если защищать сам ключ паролем, то тогда всё удобство использования ключей теряется...
Супер! Хотя остался вопрос: если хотим иметь доступ по ssh-ключу под одним пользователем с разных машин: приватный ключ с одной машины на другую копировать ?
И ведь если мы генерируем ключи у себя на машине, то получается мы будем использовать одну и туже пару ключей для доступа к разным серверам, если у нас их несколько ? А значит перенос ключей в какой-то степени компроментирует доступ ко всем этим серверам. Или на флешке носить как банковские ключи ?
Прокинуть ключи другого компа на сервер через ssh-copy-id или вручную скопировав ~/.ssh/id_rsa.pub другого компа в файл на сервере ~/.ssh/authorized_keys, добавив в конец новый публичный ключ. ssh-copy-id делает ровно это, копирует публичный ключ на сервер в authorized_keys файл
Спасибо за информацию, я так настроил доступ к серверу, отключил вход по паролю. Решил второй сервер подключить и перегенерировал ключ. Теперь при доступе к своему первому серверу пишет вот это: Permission denied (publickey,gssapi-keyex,gssapi-with-mic). Выходит я потерял доступ к серверу? Подскажите пожалуйста. По сути в маке настроена тайм машина, можно поднять старый ключ. Или есть какое то другое решение?
Спасибо за видео! Очень познавательно! Лайк и подписка! Вопрос - у меня сервак на Виндовсе. Я люблю работать на нем через МС Ремот Десктоп. Нужно ли мне делать этот ссш ключ? И если я его сделаю, смогу ли я заходить на сервак через МС Ремот Десктоп ? Мне важно работать на серваке не через терминал, а именно через графический интерфейс
Вопрос от чайника? Сгенерировал ssh, установил на сервер, запускаю putty, идёт запрос имени пароля. Вход по паролю далее не отключал, так как боюсь потом вообще не пустит. Как войти по ssh через putty?
Привет✋👋 Треба помощь. Ubuntu 18.04 host Ubuntu 18.04 server Всё на VBox На хосте и сервере прямые мосты SSH настроил как во многих мануалах. В конфиге на обеих машинах отключена аутентификация по паролю и включена по публичному ключу. При попытке подключения выходит ошибка связанная с отсутствием хоста в файле хостсерверс. Этот файл на хосте отсутствует, а на сервере пустой. Правила портов настроил. Голову сломал...
Фик знает. Мало ли где косяк. Символ какой-то потерялся в ключе, имя файла косячное, не туда положили и подобных тонна вариантов. Иногда хостер даёт возможность зайти на сервер из браузера, консоль открывается в браузере, без пароля или по паролю (без ключа)
@@t0digital ничего в ручную не правил, только копировал и вставлял. Пришлось заново сервер запустить, а "старый" удалять. Теперь с Mac нет входа в root даже с паролем, т.к. warning: remote host identification has changed! И просит добавить прпвильные host key in .ssh/known_host:2. Как заходить на сервер, если в файле. config мы всё запретили? Вот я теперь и не могу зайти на сервер ни с какого компьютера. Есть какие-то советы как поправить?
Огромное, просто гигантское спасибо за этот видосик. Вопрос только остался на предмет того, что доступ на сервер изначально мне был предоставлен как для root. Как же ему отключить доступ на сервер?
Вот в этом видео ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-FLiKTJqyyvs.html на 60:20 и дальше есть про настройку SSH на сервере, в частности про выключение доступа для рута. Собственно за это отвечает *PermitRootLogin no* в файле */etc/ssh/sshd_config* и потом перезапуск ssh
Урок топ! Но есть вопросик, почему root-пользователю нужно запрещать логиниться? root-пользователь, это же человек, который имеет права админа. Я прав? Поэтому почему нет?
Я тоже не понял. А что делать если нужно будет потом залогиниться под root ? Или www тоже админ и его прав для администрирования хватит? Поясните плиз для чайников
root пользователь имеет супер-права, то есть доступ ко всей системе. Если все команды исполнять с рута, можно нечаянно поломать всю систему, а обычный пользователь (например www) без sudo так не может. И рут-права в принципе не так часто нужны
Интересный, а главное простой способ, но что делать, если нужен доступ нескольких пользователей? Каким образом можно реализовать вход по разным ключам? И можно ли реализовать данный способ при подключении с винды?
Я не знаю что это такое, если бы знал что это такое, но я не знаю что это такое, во многих видео показывали как генерить ключ .pub сохраняли его в поддиректорию /.ssh который находиться в сервере но не в клиенте. А что с ним дальше делать не понятно, ведь заходим тупо с логина и пароля, через cmd, powerShell, OpenSSH или Putty, и что бы заходит с рут правами, отредактировал sshd файл через миднайт редактор. но я так и не понял зачем мы генерировали ssh ключ который был сохранен в сервере, и нигде больше не копировался и не использовалься, у меня хватает знаний что бы понят это, я реально не понимаю
Я понял в чем косяк, дополнительно через Putty можно сгенерировать ключи и сохранит приватный ключ в своем пк, и добавить в в ветку тега Auth в программе Putty там и прицепляешь приватный ключ, а вот публичный ключ надо скопировать на сервер Линукс в папку /.ssh. Потом сохранить соединение и все тупо по логину заходишь без ввода пароля, и при подключений к серверу хацкеры не смогут определить пароль так как он и не вводиться,
Здравствуйте! Все сделал, но при попытке войти появляется ошибка No supported authentication methods available(server sent: publickey). Ubuntu. Как быть?
Два дня мучаюсь, никак понять не могу. Ключи встали, в sshd_config все нужные параметры сменил. Захожу с компа, пропускает по ключам, захожу с ноута просит пароль... И логинится. Я уже все форумы обкурил, мне уже просто принципиально важно чтоб на сервер не пускало никого с паролем. Или я тупой. Суперпользователь с правами sudo может зайти с паролем, даже при условии что вход с паролем закрыт? root например, как и положено, не впускает вообще никак
Возможность использовать sudo никак не связана с логином кого-то по ssh. Если пользователь в sudoers, он может использовать sudo. Если конфиг не позволяет входить по паролю, но сервер это разрешает, то вероятнее всего ты не перезагрузил ssh-сервер для того, чтобы новые настройки применились.
@@t0digital service ssh restart? Да, делал. Даже больше скажу, ребутил всю систему. Я понимаю что скорее всего это я что-то сделал не так, но абсолютно не могу понять что) Ключ pub в authorized_keys прописан, в конфиге тоже всё прописал, сервер рестартил. Заходишь с устройства без ключа, просит пароль, вводишь, и оно заходит. Может с правами что-то намудрил? Chmod 600/700 и тд. Если что, сильно помидорами не кидайтесь, могу путать термины и тд, т.к. ещё пару дней назад даже не знал что можно подключаться к серверу через терминал🌝
Ozhidal shto hotj slovo budet pro 3ij variant - SSH User/Host Certificates shto javljaetsa naibole bezopasnee i v kakih to situacijah dazhe udobnee. I pro to, chem otlichatsa SHA-1 ilji ED25510.
можно полюбопытствовать ? мне вдруг показалось что вся безопасность SSH ключа заключена в месте хранения оного... т е если некто найдёт его и завладеет им то он сможет подключится к тоннелю или нет ? пс от темы я далёк это просто предположение)
Всем привет. Я не оченть опытен в данной теме и собственно вопрос: Если я сгенерирую ssh ключ и буду авторизовываться через него, другой клиент сможет авторизоваться на сервере с помощь логина/пароля?
Если закрыли доступ по ssh для root-а, как после этого получить root доступ? Например, он нужен для каких-то изменений на сервере. Так же редактирование файла sshd_config доступно только для root, так что обратно доступ не включишь, что логично.
Зашли на сервер по SSH под относительно безопасным www юзером и там уже редактируем все, используя sudo, или напрямую входим под рутом (su - root). Мы же закрываем в sshd_config именно SSH вход для рута, внутри системы рут остаётся и возможность выполнять от его имени действия в системе тоже. Просто не получится зайти по SSH сразу, ssh root@ip не пустит
vim - текстовый редактор, cat - просто выводит текст в поток вывода (напр, в консоль). vim не запускается вероятно потому что установлена его старая версия vi.
@@t0digital так в том то и дело что мышка не выделяет ничего! ) .. кто-то пишет что надо пакеты устанавливать какие-то.. Но удобнее было бы просто курсором с зажатой клавишей какой-то.. Как вы это делаете? Копировать то как раз легко shift-home shift-Insert или контекстное меню
Если он открывался в vim - то комбинацией :wq из визуального режима vim. Первое видео на этом канале - про vim, посмотрите его. И файл открывать надо с sudo, чтобы его редактировать можно было
А если с паролем что-то случится? Ключ это такой же пароль, просто более длинный. В нашем случае всегда есть возможность получить рута или восстановить рута через инструменты Selectel / другого центра
@@t0digital пароль в голове. от 10 до 16 символов. и всегда с собой (пока не разобрал склероз) :) А как мне получать доступ с любого компа? допустим, на домашних и рабочих машинах можно иметь копии. а в путешествиях? иметь его на флешке?
@@SantaCluster ну выбирайте что-то одно. Или безопасность или удобство использования. За безопасность - ключи, удобство подключения их любого места - пароль.
@@SantaCluster с любого компа можно получить доступ с помощью пароля. А если необходимо с разных компов заходить на сервер по ключу (например, с рабочего и домашнего), то нужно на каждом компе сгенерить свой ssh-ключ и публичную часть добавить в файл autorised_keys на сервере.
Для тех кто с винды будет не доступна утилита ssh-copy-id, копирование ключа на сервер доступно с помощью scp. Создадим папку .ssh на сервер: ssh USER@HOST mkdir ~/.ssh Копируем ключ: scp C:\Users\USER\.ssh\id_rsa.pub USER@HOST:~\.ssh\authorized_keys
sh: 1: cannot create .ssh/authorized_keys: Permission denied - ошибка при копировании на сервер открытой части ключа. хер ли ему надо/ UPD: дело было в правах на каталог .ssh, разобрался