ru
Feedback

Не попадитесь на канал ботавода! Telemetrio находит и помечает такие каналы 👉 Хотите видеть метку — оформите подписку

Bash Days | Linux | DevOps

Bash Days | Linux | DevOps

Открыть в Telegram

Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.ru

Больше

📈 Аналитический обзор Telegram-канала Bash Days | Linux | DevOps

Канал Bash Days | Linux | DevOps (@bashdays) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 23 603 подписчиков, занимая 5 642 место в категории Технологии и приложения и 27 685 место в регионе Россия.

📊 Показатели аудитории и динамика

С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 23 603 подписчиков.

Согласно последним данным от 12 ноября, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -27, а за последние 24 часа — -12, при этом общий охват остаётся высоким.

  • Статус верификации: Не верифицирован
  • Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 17.94%. В первые 24 часа после публикации контент обычно набирает 10.73% реакций от общего числа подписчиков.
  • Охват публикаций: В среднем каждый пост получает 4 233 просмотров. В течение первых суток публикация набирает 2 532 просмотров.
  • Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 18.
  • Тематические интересы: Контент сосредоточен на ключевых темах, таких как bashdays, linux, bash, docker, скрипт.

📝 Описание и контентная политика

Автор описывает ресурс как площадку для выражения субъективного мнения:
“Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.r...”

Благодаря высокой частоте обновлений (последние данные получены 13 ноября, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.

23 603
Подписчики
-1224 часа
-317 дней
-2730 дней
Архив постов
Приветcвую вас, комрады! 🔤🔤🔥🔤🔤🔤🔤🔤🔤🔤 Есть довольно редкоземельная но полезная утилитка, обзывается она - Crane ㅤ Примеры использования: Копирование образа между реестрами (без необходимости их пулить себе). Бывало у вас такое, что нужно перенести образ из одного реестра в другой? С crane это делается на раз-два:
crane cp gcr.io/shlyapa-project/executor:v1.7.0-debug myharbor.ru/shlyapa-executor:v1.7.0-debug
Эта команда скопирует образ executor:v1.7.0-debug из реестра gcr.io в ваш собственный реджистри myharbor.ru. Просмотр содержимого образа: Иногда хочется заглянуть внутрь образа и посмотреть, что там внутри. С crane это проще простого:
crane export executor - | tar -tvf - | less
Здесь мы экспортируем файловую систему образа executor и просматриваем список файлов с помощью команды tar. Извлечение конкретного файла из образа: Нужно достать нужный файл из образа? Легко!
crane export executor - | tar -Oxf - etc/passwd
Эта команда извлечет файл passwd из директории etc образа executor и выведет его содержимое. Сравнение конфигураций двух версий образа: Хотите узнать, чем отличаются конфигурации двух версий одного образа? Пожалуйста:
diff <(crane config front:1.32 | jq) <(crane config front:1.33 | jq)
Здесь мы сравниваем конфигурации версий 1.32 и 1.33 образа front с помощью утилиты diff. Получение размера образа: Интересно, сколько весит ваш образ? Вот как это узнать:
crane manifest gcr.io/buildpacks/builder:v1 | jq '.config.size + ([.layers[].size] | add)'
Эта команда выводит суммарный размер конфигурации и всех слоев образа. Изменение меток и аннотаций образа: Вы можете добавлять или изменять метки и аннотации в существующем образе без необходимости его повторной сборки:
crane mutate myharbor.ru/shlyapa-project/bear_ass_image:tag --annotation "org.opencontainers.image.description=New description" --label "version=2.0"
Эта команда добавит или обновит аннотацию и метку в указанном образе. Также можно доложить tarbar (архивы .tar .tar.gz .tgz), добавить тэг (удобнее чем в дефолтном докер клиенте), задать другой entrypoint и т.д. И это ещё не всё) Но это чем я пользую практически регулярно. + это 1 бинарь (на любимой многими GOшечке) что позволяет спокойно его использовать и в системах автосборки и упростить взаимодействие с контейнерам. tags: #utilites #devops — 🔔 @bashdays➡️ @gitgate

Такс, теперь в тему как отлаживать ssh подключения к серверу. К примеру ты все прописал и сделал как тут #linuxfactory, а оно все равно тебя не пускает по ключам. ㅤ Тут хочешь не хочешь нужен доступ к логам сервера к которому подключаешься. Так что заранее об этом побеспокойся, прежде чем перезапускать sshd службу. Если рута нет, загружайся в рекавери и откатывайся по конфигам на сход по паролю. В рекавери я думаю ты знаешь как заходить, да и облачных провайдеров обычно это есть из коробки. Маунтишь корневой раздел и откатываешь конфиги. Заходишь в конфиги (/etc/sshd/) руками и просто откатываешь, то что ты там закомментировал. Ладно, предположим у тебя есть доступ к руту и ты зашел на сервер. Запускай команду:
tail -f /var/log/auth.log
Теперь открывай другой терминал и пробуй подключиться по ключам. После того как ты это сделал, возвращайся в терминал где запускал tail и внимательно смотри что тебе пишут. В 100% там будет ошибка, которая элементарно гуглится. Обычно это просто проблемы с правами на файл ~/.ssh/authorized_keys или папку ~/.ssh/. Но бывают и другие приколы, например ты используешь не тот ключ или вообще без ключа подключаешься. Распространенные ошибки:
Invalid user
bad ownership or modes for /home/<username>/.ssh
Authentication failed
Connection closed by remote host
Permission denied
Too many authentication failures
Connection refused
PAM authentication errors
User not allowed
Host key verification failed
SSH protocol mismatch
Banner errors
Brute-force attempts
Timeout
Subsystem errors
Resource temporarily unavailable
Не ссым читать логи и находить нужное. А как только нашел что-то вменяемое — гуглим или скармливаем GPT (как ты любишь).
Кстати китайцы тут DeepSeek запустили, мол убийца GPT. Бесплатная и работает в РФ без приколов. Домашку ребенку решать милое дело.
tags: #git #devops #ssh #linuxfactory — 🔔 @bashdays➡️ @gitgate

Привет всем пользователям и администраторам Linux! Специально для вас я создал канал @/usr/bin, в котором регулярно делюсь св
Привет всем пользователям и администраторам Linux! Специально для вас я создал канал @/usr/bin, в котором регулярно делюсь своим опытом и опытом других людей по администрированию ОС и приложений на ней. Каждый день в канале публикуется новая интересная статья. В планах собрать интересную базу знаний, которой потом можно будет постоянно пользоваться. Топ последних постов, опубликованных на канале: 🚀 Подстроки в Bash: извлечение и обработка 🚀 Как устроен кэш Linux: руководство для начинающих 🚀 Статья о том, как стать grep-ниндзей 🚀 Буферный кэш PostgreSQL: автоматизация анализа с помощью bash-скрипта 🚀 Как проверить, используется ли папка службами в Linux Подписывайтесь на канал /usr/bin, чтобы не пропустить новые интересные статьи. Есть и другие каналы, которыми тоже занимаюсь: 🚀 @monitorim_it — всё о мониторинге 🚀 @zabbix_ru — лайфхаки в Zabbix 🚀 @elasticstack_ru — лайфхаки ElasticSearch/OpenSearch Реклама. ООО "ГАЛС СОФТВЭР". ИНН:5047195298. Erid:2VtzqwickTE

Пока я борюсь за выживание, скидываю тебе третью часть чтива. Не всё технически посты пилить.
Первая часть Вторая часть
Как научиться договариваться. Часть 3. ㅤ На встречах нужно постоянно быть в фокусе чувств. То есть надо обращать внимание на сколько тебе хуева и на сколько хуево твоему собеседнику. Это очень важная переменная в переговорах. Если ты или собеседник начнете примерять на себя пиджак жертвы, вся твоя охуеть важная встреча заведет прямиком коту в жопу. И ничо хорошего с этого естественно не получится. Ты пострадавший, он пострадавший, включается защитная реакция и вы оба идëте нахуй. А тот кто пострадавший, всегда будет бычить в ответ на все более-менее разумные закидоны. Ты такое сразу почувствуешь, вроде все правильно говоришь, а в ответ получаешь негативное сморкание. Поэтому и надо быть начеку, заранее просекая настроение и чувства твоего собеседника. Как ты читаешь чувства Прикинь простую ситуацию: Шараёбишься ты с женой по магазинам, проходишь мимо прилавка с пивом и такой — бля, надо пивка взять. Потом смотришь на жену и думаешь — тааааккк, полчаса назад я не купил ей сапоги, она в хуевом настроении, взять сейчас пивка без последствий будет пиздец проблематично. Чо делать? Надо купить ей сапоги, а потом взять пивка. Что важно в этом примере 1. Ты прочитал эмоции жены (жена пиздец злая без сапог) 2. Проанализировал ситуацию (если взять пиво, будет больно) 3. Нашел компромисс (купил сапоги) 4. Снял с жены пиджак жертвы (жена пиздец добрая с сапогами) 5. Добился своего без последствий (взял пива, все счастливы) Взрослые ведут себя так-же как и дети. Не купили игрушку, начинают выебываться. Вот и с тобой также, не повысили зарплату, начал хуева работать. Работодатель жертва и ты сука жертва, у всех проблемы. А что нужно было сделать? Правильно! Прочитать, проанализировать чувства и затем ёбнуть именно так, чтобы и ЗП тебе подняли и директор твой понял зачем он поднимает тебе ЗП. Не должно быть никакого негатива, гнева, злости. Каждая сторона должна остаться с мыслью, что все сделано правильно. Не должно быть сомнений! Как-то так, продолжение следует. tags: #рабочиебудни #memories — 🔔 @bashdays➡️ @gitgate

Нетворкинг, живые кейсы и облачные технологии — всё на K2 Cloud Conf. Ребята из K2 Cloud сделали свою конференцию, где поделя
Нетворкинг, живые кейсы и облачные технологии — всё на K2 Cloud Conf. Ребята из K2 Cloud сделали свою конференцию, где поделятся всем про облака: как подключаться к ним без компромиссов в безопасности, автоматизировать процессы с помощью PaaS, а также расскажут о новом типе сетевых дисков – всё это и не только! Встречаемся 4-го марта. Подробности и регистрация по ссылке. erid: 2VtzqwJTkuJ

Привет, сегодня без излишеств, организм решил что хватит с него и повысил температуру до некомфортных значений. Домашки проверю как отпустит. На связи! Не болейте!

🚀 На открытом вебинаре «Процессы в Linux» мы разберёмся, что такое процесс, чем он отличается от программы и научимся находи
🚀 На открытом вебинаре «Процессы в Linux» мы разберёмся, что такое процесс, чем он отличается от программы и научимся находить, анализировать и управлять процессами в вашей системе. Это не просто урок — это первый шаг к освоению Linux на профессиональном уровне! Администраторы, разработчики, девопсы — мы готовим базу, которая станет фундаментом вашей карьеры в IT. ⭐️ Спикер Андрей Буранов — системный администратор в VK, входит в топ-3 лучших преподавателей образовательных порталов. Регистрируйтесь на открытый урок 28 января в 20:00 мск. Все участники вебинара получат скидку на обучение на курсе «Administrator Linux. Basic». 👉 Успейте занять своё место: https://vk.cc/cHRVht Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

А я всё же нашел вторую часть, как оказалась есть и третья и четвертая, упоролся видимо знатно в 2021 году. Ну чо, раз просили, сливаю, мож кого замотивирует.
Первая часть тут и там
Как научиться договариваться. Часть 2. 🅰️🅰️ Будь готов к встрече заранее! ㅤ Если у тебя намечается какая-то судьбоносная встреча или переговоры, то у тебя проблема! Ты довел ситуацию до края, раз эта встреча имеет место быть. Тебе важен результат. Но почему ты привязал важность этого результата именно к этой встрече? Ща на примере разберем. Короче у меня есть клиент, он от меня съябывается, я назначил ему встречу и хочу спасти наши отношения, хочу дальше подсасывать с него денежку. Вопрос — какого хера я вообще довел ситуацию до такого пиздеца? Мне надо встречаться с клиентом и очко ему облизывать. Я блядь нервничаю. Почему я раньше нихуя не сделал и дотянул до последнего? В чем моя проблема? Ну или как вариант, решил ты устроиться на новую работу, тебя трясет как сучку, майка воняет, пальцы вспотели. Ебаться сраться. Ситуация. Но в чем смысл так нервничать? Если ты за себя знаешь, знаешь пацанов на районе, хуль ссаться-то. Синдром самозванца? Да поебать, на любой товар найдется покупатель, будь ты последним гавном, тебя все равно купят. Суть то тут какая со всех этих историй — если косяков за тобой нет, любые встречи и переговоры пройдут как по маслу. Никто тебе не предъявит. Это как в хату заходить, если нормальный пацан, то в шерсть не выкинут. Проработай план Сядь и подумай, а что вообще будет на этой встрече? Сформулируй понимание. Продумай максимально больше вариантов куда могут зайти переговоры. Тогда тебе не понадобится импровизировать, ты будешь с готовыми кейсами и на любые выпады собеседника, ответишь четко и по делу. Без мычания и ЭЭ, МУУ, ХРЮЮ. Я обычно накидываю структуру разговора и варианты вопросов которые мне могут задать. На эти вопросы я сразу пишу ответы. Конечно не всегда всё идет по пизде по плану, но 99% я успешно закрываю ранее подготовленными ответами. Вообще план накидать надо примерно такой: Повестка — О чем будем пиздеть на этой встрече Чувства — Что будет чувствовать ты и твой собеседник во время этой встречи? Желаемый результат — Чего добиться то хочешь? А чо хочет твой собеседник? На самом деле когда начинаешь накидывать этот план, на первом этапе Повестки, можно вообще встречу забрить, если ты уверен что по итогу встречи результат будет положительным в твою пользу. Например. Пишем повестку для встречи — Будем ли автоматизировать продление SSL сертификатов для основного сайта? Ничего не смущает? Ты сделаешь встречу, где результат будет 100% положительным в твою пользу. Автоматизация нужна, сертификаты важны, никто нахуй не пошлет, а скажут — да, ок делай. Ну и нахера тогда встреча? Проебешь 15 минут своего времени и 15 минут собеседника, чтобы убедиться в том что заранее знаешь. Оно того стоит? Конечно нет. Назначай встречи, когда они реально нужны. Хочешь просто попиздеть — иди на нахуй в дискорд или спустись к подъезду и с бабками затри за кубер. Вообще когда ко мне приходит коллега и просит внезапно созвонится и решить какой-то пиздец супер важный вопрос, я говорю — чувак, у меня гарнитуры нет, если срочно, пиши текстом, решим. Чувак пишет текстом — а можно я в дженкинсе свою джобу поконфигуряю? Блядь... у тебя доступ есть, создавай, конфигуряй, от меня-то чо надо? Что бы я сказал - можно? Ну ладно, говорю - можно. Он уходит! Но если бы я согласился на созвон, мне бы полчаса ебали мозги за погоду, детей, котов, а в конце задали бы тот же вопрос — а можно мне джобу сконфигурять? Так что будь гибче, не проебывай свое драгоценное время на пустые созвоны. Но естественно для раскачки твоего анти-интроверта, советую вообще на всю эту хуйню подписываться и везде ходить и просто разговаривать. Эт потом начнешь пальцы гнуть и хуи в уши другим вкручивать. tags: #рабочиебудни #memories — 🔔 @bashdays➡️ @gitgate

Ой чо я тебе принес! Tower Networking Inc. ㅤ
Халявный симулятор интернет провайдера. Обжимаем кабеля, конфигуряем циски, микротики, решаем проблемы, выслушиваем дерьмо от жильцов в свой адрес, короче полное погружение.
На твоём попечении многоквартирный дом. - Собираем сетевой периметр - Конфигурируем сервера - Сканируем сетку и пингуем девайсы - Бегаем как олень по этажам - Задерживают ЗП и кормят завтраками - Подвалы и засраные голубями шкафы - Девушки которые готовы дать инженеру - Дерем деньги за услуги - Разнообразие клиентов (долбаебы присутствуют) - Вечерами выгораешь и бухаешь - Можно играть с друзьями Игруха пока что в раннем доступе, можно качнуть бесплатную демку. Но демки вполне хватает, чтобы проникнуться атмосферой профессии. Единственный минус, игруха под винду, но для тебя я думаю это не проблема, вполне реально на виртуалке погонять, не требовательная к ресурсам. ➡️ Качать тут, но нужен стим ➡️ Геймлей можно попырить тут tags: #games — 🔔 @bashdays➡️ @gitgate

В периоды праздников и больших распродаж растёт не только выручка, но и нагрузка на ИТ-системы компании. Например, если во вр
В периоды праздников и больших распродаж растёт не только выручка, но и нагрузка на ИТ-системы компании. Например, если во время праздников перестанет работать сервис по продаже билетов — компания потеряет миллионы. Такая же ситуация у интернет-магазинов, туроператоров, банков, стриминговых сервисов. Здесь показатели бизнеса напрямую связаны с работой инфраструктуры. 30 января на вебинаре эксперты MTC Web Services расскажут, как подготовиться к сезону, чтобы ваши системы не упали в период высоких нагрузок. Вы узнаете: 🔴К каким рискам в работе ИТ-систем нужно быть готовым во время высокого спроса 🔴Почему просто докупить серверы недостаточно 🔴Какие облачные сервисы помогают нашим клиентам выдерживать резкие всплески нагрузок Вебинар будет полезен: ✔️Ресурсам с резким всплеском трафика (сервисы по продаже билетов, новостные ленты, туроператоры и сервисы букинга, стриминговые сервисы, продажа образовательных курсов); ✔️Букмекерским конторам; ✔️E-commerce и онлайн-магазинам; ✔️Банковскому сектору. Регистрируйтесь и приходите на вебинар, задавайте вопросы спикерам — за лучший вопрос в комментариях будет подарок от команды!

Вот сделал ты все как написано тут и тут и тут, сгенерил ключи и подготовил сервера, но сука все равно что-то какая-то шляпа: Искал медь, обосрал медведь…
ssh user@server

Permission denied (publickey).
Что я делаю не так? Всё правильно, твой ssh клиент не знает, что ты пытаешься подключиться по ключам. Он идет на сервер по дефолту и ожидает что запросят пароль. ㅤ А вход по паролям-то мы отключили!
Особенно ребята испытывают страдания при запуске ансибла. И начинают грешить именно на ансибл и плейбуки, а дело тут опять же в этих ключах. Ансибл ходит на сервера по ssh, соответственно это агент и ему тоже нужно знать про ssh ключи.
Не ссым, все уже придумали за нас. ➡️ Первый вариант:
ssh -i ~/.ssh/bashdays_rsa user@server
Через ключ -i указываем путь до своего ключа и со свистом залетаем на сервер. Теперь твой клиент знает — ага, эта бестолочь догадалась указать ключ, ну ок, прогнусь. Указывать каждый раз -i очень заёбисто, особенно если у тебя ssh ключей вагон и тележка, легко запутаться. Но тут тоже уже все придумано за нас. ➡️ Второй вариант: Захуячиваем ssh-agent
sudo apt-get update
sudo apt-get install openssh-client
Запускаем агент в фоне:
eval "$(ssh-agent -s)"
И добавляем в него нужные ключи:
ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/bashdays_rsa
ssh-add ~/.ssh/ed25519
Смотрим что у нас торчит в агенте:
ssh-add -L
Ага, все ключи добавлены. Теперь не нужно указывать ключ -i, агент сам подкинет нужный ключ. Ну и ансибл сразу засвистит-запердит как надо. Прикол с агентом: Если на ssh ключе у тебя установлен пароль, то достаточно один раз его ввести и все последующие разы он у тебя не запрашивается. Не прикол с агентом: Как только ты закроешь консоль, агент уедет на кладбище со всеми ключами. Решение: Хуярим в ~/.profile (или чо там у тебя) такую конструкцию:
if [ -z "$SSH_AUTH_SOCK" ]; then
  eval $(ssh-agent -s) > ~/.ssh/ssh-agent
fi

ssh-add ~/.ssh/id_rsa
ssh-add ~/.ssh/bashdays_rsa
ssh-add ~/.ssh/ed25519
Теперь при открытии консоли, у тебя будет автоматически запускаться ssh-agent и добавляться нужные ключи. Для zsh, в конфиге ~/.zshrc прописываем:
plugins=(git ssh-agent)

zstyle :omz:plugins:ssh-agent agent-forwarding on
zstyle :omz:plugins:ssh-agent identities id_rsa bashdays_rsa ed25519
zstyle :omz:plugins:ssh-agent lifetime
Включаем плагин ssh-agent и добавляем все нужные ключи. Теперь из коробки у тебя будет работать агент и в нем будут подгружены ключи. ➡️ Третий вариант: Через конфиг ~/.ssh/config, открываем этот файл у себя на машине и пишем:
Host bashdays.ru
  Hostname bashdays.ru
  IdentityFile /home/user/.ssh/bashdays_rsa
Теперь когда ты будешь подключаться по ssh к серверу bashdays.ru, то автоматически подставится указанный файл с ключами. Таким способом разруливают разные ключи для разных учеток в гитхабах/гитлабах. Например, так:
Host github.com
  Hostname github.com
  IdentityFile ~/.ssh/id_ed25519

Host github.com-bashdays
  Hostname github.com
  IdentityFile ~/.ssh/bashdays_rsa
➡️ Четвертый вариант: Сделать алиасы:
alias stage='ssh -i ~/.ssh/bashdays_rsa user@server'
alias prod='ssh -i ~/.ssh/id_ed25519 root@server'
И потом просто в консольке вбивать stage или prod, все автоматически подставится. 🅰️🅰️ Я использую все варианты, в зависимости от ситуации, но в предпочтениях у меня ssh-agent и алиасы. Да, в ансибле можно тоже прописать хардкодом ssh ключ, чтобы не использовать агентов и т.п. Через конфиг ansible.cfg:
[defaults]
private_key_file = ~/.ssh/bashdays_rsa
Через переменную окружения:
export ANSIBLE_PRIVATE_KEY_FILE=~/.ssh/bashdays_rsa
Есть еще 100500 способов как в ансибле это передать, я показал основные. Если хочешь узнать про все, велком в LF. Если знаешь еще какие-то варианты и приколюхи с ключами, камон в комменты, соберем в кучу полезняхи. С пятницей друзья! tags: #git #devops #ssh #linuxfactory — 🔔 @bashdays➡️ @gitgate

Что делать, если не хватает практики для работы с k8s? 👉 пойти учиться в Слёрм и освоить навыки работы с Kubernetes! За 6 не
Что делать, если не хватает практики для работы с k8s? 👉 пойти учиться в Слёрм и освоить навыки работы с Kubernetes! За 6 недель разберем: 🔸архитектуру k8s, основные понятия и компоненты 🔸создание, развертывание и масштабирование контейнеризированных приложений 🔸эксплуатацию кластеров k8s 🔸настройку мониторинга в кластере k8s
➕ Видеокурс «Мониторинг в Grafana» в подарок до 31 января — для тех, кто хочет научиться работать со связкой Prometheus+Grafana, разбираться в работе системы и читать созданные графики. 🔥115 000 ₽ 80 000 ₽
Старт потока 10 февраля Подробности и программа курса — на сайте 👈 Реклама ООО «Слёрм» ИНН 3652901451

Немного съедем с темы и решим задачку с монтированием виндового раздела (BitLocker) в Linux. Если у тебя есть виндовый диск который запечатан битлокером, оказывается нифига не просто его подключить. При попытке монтирования получишь ошибку — анкновн файлсистем тайп БитЛохер. Всё решается с помощью утилиты dislocker.
sudo apt install dislocker
После установки создаем пару папок:
sudo mkdir -p /mnt/bitlocker
sudo mkdir -p /mnt/bitlockermount
Смотрим зашифрованные разделы fdisk -l ну или lsblk. Ну а дальше делаем финт ушами:
sudo dislocker <partition> -u<password> -- /mnt/bitlocker
Расшифровываем раздел, подставляем нужный partition и password. Partition берем тот что нашли через fdisk или lsblk. Что-то типа /dev/sdd1 /dev/sdc1. Монтируем:
sudo mount -o loop /mnt/bitlocker/dislocker-file /mnt/bitlockermount
Чтобы подключить раздел только для чтения, добавь в обе команды ключ -r. Рекомендую все же подключать с этим ключом. Если получил ошибку:
mount: /mnt/bitlockermount: wrong fs type, bad option, bad superblock on /dev/loop10, missing codepage or helper program, or other error.
То укажи явно тип файловой системы: Для ntfs:
sudo mount -t ntfs-3g -o loop /mnt/bitlocker/dislocker-file /media/bitlockermount
Для exFat:
sudo mount -t exFAT-fuse -o loop /mnt/bitlocker/dislocker-file /media/bitlockermount
Еще момент, вместо пароля можно использовать пароль восстановления, файла BEK или открытого ключа с помощью которого производилось шифрование. Для пароля восcтановления: -p<password> Для открытого ключа: -c Для BEK: -f <BEKFILE>
Заметь что после ключа -p нет пробела, это важно.
Ну вот и всё. Теперь ты умеешь подключить диски с BitLocker. А что бы такой диск подключался автоматически, камон в fstab:
<partition> /mnt/bitlocker fuse.dislocker user-password=<password>,nofail 0 0

/mnt/bitlocker/dislocker-file /media/bitlockermount auto nofail 0 0
Подставляем свои значения и радуемся. ➡️ Репа dislocker тут, можешь глянуть что там у нее под капотом. Кстати диски с битлокером отлично открываются в Fedora Silverblue из коробки (с помощью recovery password). По крайней мере в прошлом году точно открывались. Можешь ее на виртуалку поставить и развлекаться. tags: #linux #windows #utilites — 🔔 @bashdays➡️ @gitgate

В конце прошлого года «Лаборатория Касперского» запустили обучающую онлайн-платформу по ИБ, где собраны все доступные практич
В конце прошлого года «Лаборатория Касперского» запустили обучающую онлайн-платформу по ИБ, где собраны все доступные практические курсы от ведущих специалистов компании. В портфолио Kaspersky Cybersecurity Training представлены самые востребованные программы в постоянном онлайн-доступе! Можно пройти курсы и получить практические навыки кибербезопасности в удобном формате и комфортном для вас темпе. Чтобы больше узнать о доступных программах для онлайн-обучения, их наполнении и условиях обучения Kaspersky 30 января в 11.00 (МСК) проведет бесплатный вебинар с видеоуроками, презентациями и покажут целую облачную лабораторию, где можно отточить навыки на реальных образцах вредоносного кода и артефактах, с которыми специалисты сталкивались в расследованиях. Представят эксклюзивный курс по безопасной разработке ПО и разберут кому будут полезны курсы, и какие компетенции вы сможете освоить с помощью представленных программ. А если не сможете присутствовать на вебинаре 30 января? Не переживайте! Просто зарегистрируйтесь, и вам отправят запись после мероприятия!

Скинул мне как-то давненько NPC свой ssh ключ, чтобы я прописал его на сервере. Смотрю я на этот ключик и понять не могу — ты блядь через что это сделал?
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAAAAAwA...
И был он гораздо короче тех к которым я привык. Всего 256 бит. А привык я естественно к RSA. ㅤ Хуйня! Чем короче тем уязвимее — подумал я и запросил нормальный, тот который ssh-rsa. Ну а потом спустя какое-то время проресерчив тему, узнал что ed25519 это всего лишь один из видов ключей которые можно пропихать в ~/.ssh/authorized_keys. И всё будет работать! Причем такой ключ гораздо надежнее чем легаси rsa. Короче не значит хуёвее. Распространенные типы ключей: rsa, ecdsa, ed25519, dsa (устаревший), может что-то еще существует, хуй знает, не интересовался.
ssh-rsa AAAAB3NzaC1yc2EAAAABIw...
ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTI...
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICm8x...
ssh-dss AAAAB3NzaC1kc3MAAACBAPnsfNOnD...
Чтобы сгенерить такие ключи, нужно прописать их тип в параметр -t
ssh-keygen -t dsa -f ~/.ssh/bashdays_dsa
А дальше делаем всё как написано тут и тут и ходим на сервер по ключам. Почему «короче» не значит хуёвее? Давай сразу на примерах. Представь, что у тебя есть два лабиринта:
- В одном лабиринте (пики точеные) тебе нужно просто найти правильное число, которое делится на два других (RSA). - В другом лабиринте (хуи дроченые) тебе нужно найти точку на сложной кривой, которая соответствует определенному числу (ED25519).
Хотя лабиринт с простым числом (RSA) кажется меньше, его можно быстро решить с помощью методов, использующих факторизацию больших чисел. А вот лабиринт с эллиптической кривой (ED25519) будет гораздо более сложным для прохождения, даже если его размеры кажутся меньше, потому что для нахождения решения требуется гораздо больше вычислений. Хотя ED25519 ключ меньше по размеру (256 бит против 2048 бит в RSA), его решение гораздо сложнее из-за самой природы криптографии. 🅰️🅰️ Есть еще ключи в формате ppk, это те ключи которые можно сгенерить с помощью ебанутого PuTTYgen. Порой мне такие тоже скидывают, чтобы я их прописал. Но такие персонажи сразу идут — нахуй! Чтобы сконвертить такой ppk в нормальный ключ openssh, в самой морде PuTTYgen нужно сделать экспорт:
"Conversions" → "Export OpenSSH Key"
Либо через командную строку:
sudo apt update
sudo apt install putty-tools

puttygen bashdays.ppk -O private-openssh -o id_ed25519
ssh-keygen -y -f id_ed25519 > id_ed25519.pub
Устанавливаем нужный софт, конвертируем, высекаем публичный ключ. 🅰️🅰️ Для меня ed25519 всё равно чуждый, привык что-ли я к rsa, поэтому предпочитаю именно его. Ну а ты сразу привыкай к хорошему. ED25519 кстати нормально поддерживается в gitlab/github/gitea и отлично подходит для высоконагруженных систем и аутентификации. tags: #git #devops #linuxfactory — 🔔 @bashdays➡️ @gitgate

Проект масштабируется, и поддерживать его работоспособность становится сложнее? ✅ Значит, пора углубляться в создание, управл
Проект масштабируется, и поддерживать его работоспособность становится сложнее? ✅ Значит, пора углубляться в создание, управление и мониторинг работы кластеров! Все знания и практику можно получить на курсе «Kubernetes Мега» от учебного центра Слёрм.
➕ Видеокурс «Мониторинг в Grafana» в подарок до 31 января — для тех, кто хочет научиться работать со связкой Prometheus+Grafana, разбираться в работе системы и читать созданные графики. 🔥 145 000 ₽ 110 000 ₽
Подробности и программа курса — на сайте 👈 За 7 недель вы научитесь: 🔸переносить продукт на платформу k8s 🔸разворачивать отказоустойчивые кластеры 🔸ускорять траблшуттинг 🔸повышать отказоустойчивость продукта 🔸разворачивать и обслуживать кластер с автоматической ротацией сертификатов, автодеплоем и правильным хранением секретов Еще раз ссылка на сайт 👈 Реклама ООО «Слёрм» ИНН 3652901451

На прохождение Cyber Shadow я потратил 20 часов и сдох 727 раз. Что сказать, моя жопа давно так не горела, со времен Ninja Gaiden на Денди. Но своеобразное удовольствие я всё же получил. Ладно, сегодня продолжаем серию постов #linuxfactory ㅤ SSH ключи мы с тобой сделали, на сервере их прописали, надеюсь хорошо разжевал и ты проникся. Но это еще не всё, сервер не готов запускать тебя по ключам. Сейчас это исправим. Пиздуем на сервер под рутом, на тот самый куда ты закинул публичную часть ключа и открываем на редактирование файл /etc/ssh/sshd_config. Активируем эти строчки:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Потом делаем так:
ChallengeResponseAuthentication no
PasswordAuthentication no
PermitEmptyPasswords no
PermitRootLogin no
UsePAM no
Отключаем пароли, запрещаем вход под рутом, ну и так по мелочи. Мелочи расписал в комментах. Тут есть нюанс, при PermitRootLogin no ты иногда все равно сможешь зайти под рутом. Тут все дело в невинном файле который порой пихают из коробки.
/etc/ssh/sshd_config.d/50-cloud-init.conf
Этот файл содержит реврайт, в нем будет PermitRootLogin yes.
Так что, если ты отключил это в основном конфиге, проверь, а нет ли где-то еще реврайтов. На эти грабли очень часто наступают и тратят пол дня на дебаг.
После того как ты сделал все изменения, нужно выполнить:
sshd -t
systemctl reload sshd
Если первая команда отработала без ошибок, то запускаем reload. ➡️ Важно! Терминал в котором ты всё это настраиваешь — закрывать не стоит, сессия будет жить даже если накосячил. Сначала открой второй терминал и проверь что ты можешь снова войти на сервер по ключам или как минимум по паролю если сервер его запросил.
Бывают неприятные моменты, когда ты отключил вход по паролю и ssh ключи не завелись. Пизда рулю. Позже покажу как и это решать малой кровью.
В некоторых современных дистрибутивах, перезагрузка sshd поставлена на поток, ты меняешь конфиг и если с ним все ок, конфиг автоматически перечитывается службой. Носи это у себя в голове. Ну и еще про конфиги ssh, на сервере есть пару похожих конфигов, их часто путают и делают хуйню.
/etc/ssh/ssh_config
/etc/ssh/sshd_config
Первый это настройки поведения клиента. То есть если ты с этого сервера решишь куда-то подключиться по ssh, то применятся настройки из этого файла. А второй соответственно это серверные настройки. Твоя локальная машина это клиент, подключается к серверу, сервер берет настройки из /etc/ssh/sshd_config. Вот и всё. Если читал внимательно, у тебя в голове должен был сложиться правильный пазл. Ну и доступ по ключам тоже заработает. Тыкай, проверяй, задавай вопросы в комментах и пиши свои дополнения. Я человек пожилой, мог чего-то нахуевертить и упустить. Увидимся, это еще далеко не всё. tags: #git #devops #linuxfactory — 🔔 @bashdays➡️ @gitgate

Базы данных для задач любой сложности Безопасность, масштабируемость и отказоустойчивость баз данных — ключевые требования дл
Базы данных для задач любой сложности Безопасность, масштабируемость и отказоустойчивость баз данных — ключевые требования для любых современных веб-сервисов и приложений. А наличие этих требований по умолчанию, без дополнительной головной боли — мечта для любого бизнеса. Или не мечта, а реальность? Selectel предлагает одни из лучших облачных баз данных на рынке и берет эти на заботы на себя: ● предоставляет высокую производительность за счет оптимальной настройки ПО, подбора мощного железа и локальных NVMe-дисков; ● обеспечивает резервное копирование. Бесплатные бэкапы создаются автоматически, а восстановление данных происходит вплоть до секунды; ● гарантирует отказоустойчивость. Создать отказоустойчивый кластер можно всего от двух нод, что позволяет сэкономить до 33% стоимости ресурсов; ● дает возможности для быстрого масштабирования. При росте нагрузки можно поменять конфигурацию облачного сервера и количество реплик без простоя. ● заботится о безопасности: сервис соответствует российским и международным стандартам — закону 152-ФЗ (УЗ-1), приказу ФСТЭК № 21, PCI DSS, ISO 27001, 27017, 27018 и ГОСТ Р 57580. Развернуть готовые к работе кластеры облачных баз данных в несколько кликов: https://slc.tl/89548 Реклама, АО «Селектел», ИНН: 7810962785, ERID: 2VtzqxMCKuV

Такс, по гиту немного прошлись (но еще вернемся), теперь по ssh ключам. Для многих как оказалось тоже большая проблема. Но это база, поэтому нужно с этим научиться жить. Принять и простить.
Задача — хочу с локальной машины подключиться к серверу по ssh используя ключ.
Смысл тут такой: у тебя есть 2 ключа, один приватный, второй публичный. Приватный ключ ты хранишь как свою жопу и задом к лесу не поворачиваешься. Публичный ключ прописываешь на удаленных серверах, к которым тебе нужно подключиться.
В момент подключения к серверу публичная часть ключа «сравнивается» с приватной частью и если все хорошо, то включается зеленый свет.
А если всё хуева… то отправляемся дебажить, как эффектевно дебажить расскажу попозже. ㅤ Давай тыкать. Генерим RSA ключ на своей машине. Про форматы ключей rsa/dsa напишу также отдельно, пока делаем rsa.
ssh-keygen -t rsa -b 4096 -N "" -f ~/.ssh/bashdays_rsa
Эта команда сгенерит без лишних вопросов новый ключ и положит его в ~/.ssh/. Параметр -N указывает что на ключе не будет парольной фразы. Если по безопасности упарываешь, то можешь поставить пароль и ебстись с ним в будущем. Остальные параметры думаю для тебя очевидны. Тип ключа, битность, куда положить. Теперь у тебя в папке ~/.ssh/ два ключа bashdays и bashdays.pub. Соответственно первый это приватный (храним его как свою жопу), второй это публичный (шлюха ключ). Если попал в ситуацию, что публичный ключ проебался, можешь его сделать на основе приватного ключа, делается так:
ssh-keygen -y -f ~/.ssh/bashdays_rsa > ~/.ssh/bashdays.pub
Дело в шляпе. Тут самое главное не въебать приватный ключ. Ну а если въебал, сочувствую. А дальше… а дальше нужно публичную часть ключа прописать на сервер, к которому ты хочешь подключиться. Делается так:
ssh-copy-id -i ~/.ssh/bashdays.pub root@server
Если у тебя свежий сервак, то по умолчанию включен вход по паролю, на эту команду оно запросит пароль. Введи разок и ключик залетит на сервер. ➡️ Важно! Этой командой мы добавили на удаленный сервер ключ для пользователя root. То есть подключиться по ключам на сервер ты сможешь только под пользователем root. Если у тебя на удаленном сервере какой-то есть юзер, например: suchka, то и команда будет такой:
ssh-copy-id -i ~/.ssh/bashdays.pub suchka@server
Тут мы поменяли root на suchka. Теперь получается я могу используя приватный ключ bashdays_rsa, подключиться к удаленному серверу так:
ssh -i ~/.ssh/bashdays_rsa root@server
ssh -i ~/.ssh/bashdays_rsa suchka@server
То есть под рутом и под сучком. Аналогично добавляешь ключи для других юзеров. Вообще под рутом не рекомендую ключи какие-то прописывать, делай сразу для юзера и через sudoers наруливай ему права. Я обычно не пользуюсь ssh-copy-id, а сразу ручусь на сервер под паролем, руками создаю файл /home/user/.ssh/authorized_keys и в него просто копирую содержимое публичного ключа bashdays.pub. Но тут есть ряд нюансов. У файла authorized_keys должны быть права 600 или 644. Иначе на сервер не пустят. У меня всегда 600.
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
А еще могут возникнуть проблемы с копипастой, не всегда удается скопировать ключик верно. Поэтому рекомендую сразу привыкать к хорошему и пользоваться ssh-copy-id. Ну и однострочник на баше для копирования ключа:
cat ~/.ssh/bashdays_rsa.pub | ssh username@server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"
Вечерком продолжим. Пока мотай на ус. tags: #git #devops #linuxfactory — 🔔 @bashdays➡️ @gitgate