Такс, пора выходить из новогодней комы и включаться в работу.
При манипуляции с логами, ты можешь столкнуться с какими-то непонятными
ㅤ
Это «Фасилити»… Ладно, это что-то вроде категорий в которые можно завернуть свои логи и потом уже по ним грепать.
Системные логи это:
Рассмотрим пример:
Не проверял, но суть ты поймешь.
Здесь я завернул логи приложения в категорию
Например, закинуть его в эластик:
Ну или обработать локально в файл:
Так же можно завернуть необходимую группу приложений в эту категорию и отделить ее от системных логов.
Практика использования
Такие вот пироги. Ничо в этом сложного нет. Просто категории для изоляции, гибкости и скалируемости.
Изучай!
tags: #linux #monitoring
—
🔔 @bashdays➡️ @gitgate
При манипуляции с логами, ты можешь столкнуться с какими-то непонятными
local0 – local7
. Чо эт ваще такое?ㅤ
Это «Фасилити»… Ладно, это что-то вроде категорий в которые можно завернуть свои логи и потом уже по ним грепать.
Суть этих категорий — не смешивать выхлоп пользовательских программ с системными логами.
Системные логи это:
auth
, daemon
, mail
, kern
и т.д. Эти штуки ты можешь встретить например при настройке rsyslog конфига.Рассмотрим пример:
import syslog
syslog.openlog(ident="BashDays", facility=syslog.LOG_LOCAL0)
syslog.syslog(syslog.LOG_INFO, "Привет из local0")
Не проверял, но суть ты поймешь.
Здесь я завернул логи приложения в категорию
local0
. И теперь могу открыть этот local0
и обрабатывать как мне нужно.Например, закинуть его в эластик:
local0.* @log.bashdays.com:514
Ну или обработать локально в файл:
local0.* /var/log/local0.log
Так же можно завернуть необходимую группу приложений в эту категорию и отделить ее от системных логов.
Практика использования
local0: логи веб-сервера
local1: для docker контейнеров
local2: логи бекапов
local3: логи крон скриптов
local4–local7: резервные
Такие вот пироги. Ничо в этом сложного нет. Просто категории для изоляции, гибкости и скалируемости.
Изучай!
tags: #linux #monitoring
—
Please open Telegram to view this post
VIEW IN TELEGRAM
10 64
This media is not supported in your browser
VIEW IN TELEGRAM
Последний вагон. Напоминалка короче, для тех кто упустил момент или только что вышел из НГ комы.
1. Акция на LF заканчивается 12.01 (5000р 2500р), вписаться здесь.
Если бот не отвечает — напиши ему /start
2. Бесплатный курс по Bash от Tagd стартует 11.01, вписать здесь.
3. Завтра снова пятница.
По всем вопросам можешь писать сюда: @linuxfactorybot
1. Акция на LF заканчивается 12.01 (
Если бот не отвечает — напиши ему /start
2. Бесплатный курс по Bash от Tagd стартует 11.01, вписать здесь.
3. Завтра снова пятница.
По всем вопросам можешь писать сюда: @linuxfactorybot
Вчера в посте пролетала строчка:
И тут как раз частый вопрос - чо за символ «собаки» перед названием сервера?
Магии тут нет, символ
Надеюсь ты знаешь, что UDP не гарантирует доставку. Если сеть перегружена или приходят «сетевые ножницы», пакет может — проебаться.
ㅤ
Чтобы этого избежать, логичнее использовать TCP, в rsyslog это делается через двойную собаку.
По итогу получаешь:
- Подтверждение доставки (сервер подтверждает приём данных).
- Повторную отправку пакетов, если они теряются.
- Сохранение порядка доставки пакетов.
Короче тут сам выбираешь что тебе важнее, либо скорость, либо надежность.
Запоминаем:
Раз «собака» = UDP
Два «собака» = TCP
Что чаще применяют?
UDP, но если логи прям критичные то TCP, нет серебряной пули, всё зависит от конкретной ситуации. Но тут речь не про это, а про «собак».
Такие дела.
tags: #linux #monitoring
—
🔔 @bashdays➡️ @gitgate
local0.* @log.bashdays.com:514
И тут как раз частый вопрос - чо за символ «собаки» перед названием сервера?
Магии тут нет, символ
«@»
означает протокол передачи UDP.Надеюсь ты знаешь, что UDP не гарантирует доставку. Если сеть перегружена или приходят «сетевые ножницы», пакет может — проебаться.
ㅤ
Чтобы этого избежать, логичнее использовать TCP, в rsyslog это делается через двойную собаку.
local0.* @@log.bashdays.com:514
По итогу получаешь:
- Подтверждение доставки (сервер подтверждает приём данных).
- Повторную отправку пакетов, если они теряются.
- Сохранение порядка доставки пакетов.
Короче тут сам выбираешь что тебе важнее, либо скорость, либо надежность.
Запоминаем:
Раз «собака» = UDP
Два «собака» = TCP
Что чаще применяют?
UDP, но если логи прям критичные то TCP, нет серебряной пули, всё зависит от конкретной ситуации. Но тут речь не про это, а про «собак».
Такие дела.
tags: #linux #monitoring
—
Please open Telegram to view this post
VIEW IN TELEGRAM
По технической части я хуй знает чо те написать, поэтому закину свои меморисы (2021) на сон грядущий, прям из стола. Мало кто их видел.
Как научиться договариваться. Часть 1.
ㅤ
Похуй насчет чего, с клиентом, руководителем, коллегами, тетей Зиной, котом, чайником. Погнали.
Ты ебать интроверт, проще в одну харю чето сделаешь, чем привлечешь внешнюю помощь.
Тебя нахуй пугают телефонные переговоры, ты рад, что пандемия и можно носить маску на пол еблища и никто не замечает твоего страха.
К директору за повышением ты не ходишь, ссышь, сидишь и ждешь годами пока там сами решат тебе кинуть кусок.
В магазине ты быстро покупаешь продукты и моментально съебываешься в свою нору.
Если возникает какая-то коммунальная авария в твоей халупе, для тебя это конец света, так как очень некомфортно вызывать мастеров.
Тебя можно описать тремя словами — Неуверенность. Смущение. Отчаяние.
Короче я сам в такую пиздень как-то попал, ноги росли от перехода на удаленку.
Да я и до удаленки себя некомфортно чувствовал, а уж в изоляции весь этот пиздец в тысячу раз усилился.
В общем если все выше написанное про тебя, то я тебя обрадую — ни одна книга в мире тебе не поможет.
Как поступает большинство людей, когда пытаются разобраться с проблемой?
Правильно, начинают читать книжки и гуглить. Нахватавшись из книжек всяких советов по софт-скиллам и психологии, ты ебать такой идешь на переговоры, вроде и знаний до ебени матери уже получил, но чото нихуя не работает, ты снова засунул язык в жопу и мычишь.
Тебя по-прежнему трясет, ничего не изменилось. Ты прочитал кучу говна, которая тебе никак не помогла. Встань щас и выкинь нахуй все эти книги, нехуй на них тратить время и деньги. Они не помогут тебе победить страх.
А знаешь чо помогает? А вот чего — ходи регулярно на всякие встречи, выступай, комментируй, как-то проявляй себя, высказывай свое мнение, спорь.
Чем больше у тебя будет таких встреч, тем быстрее у тебя пройдет страх.
Твоя башка просто привыкнет к ситуации общения и ты уже не будешь так сильно бояться и ссаться в штанину. Сначала будет очень страшно, потом станет похуй.
Понятно, что такие встречи отнимают много времени, но это единственный способ вернутся к нормальной жизни и стать здоровым человеком.
Кстати есть еще один вариант. Можешь напиздярится в тряпки алкашкой. Но вариант такой себе. Страх пройдет, но могут быть побочки. Советовать этот вариант не буду. Тут сам решай.
Все книги по переговорам и психологии общения, дадут тебе базовые знания и стратегические скиллы. К примеру как правильно что-то попросить, как задать вопрос, как ебнуть смешной анекдот.
Грузить наукой не буду, все что ты читаешь в книгах остается у тебя в специальном разделе мозга (неокортекс). А вот боязнь попиздеть с людьми находится в зоне эмпатии.
Эта зона появилась хуй знает когда давно, в ней заложены базовые знания, как ходить, срать, жрать. Вот и переговоры входят в эту зону.
Поэтому чтобы научится разговаривать с людьми и не убегать со страху, нужно тренироваться. Тыж не сразу ходить научился, тренировался и научился, тут такой же принцип.
Прочитав книгу «Как научится играть на гитаре», ты нихуя не научишься играть на гитаре, тебе нужна гитара и практика. Без тренировки, не разовьется мышечный навык.
tags: #рабочиебудни #memories
—
🔔 @bashdays➡️ @gitgate
Как научиться договариваться. Часть 1.
ㅤ
Похуй насчет чего, с клиентом, руководителем, коллегами, тетей Зиной, котом, чайником. Погнали.
Ты ебать интроверт, проще в одну харю чето сделаешь, чем привлечешь внешнюю помощь.
Тебя нахуй пугают телефонные переговоры, ты рад, что пандемия и можно носить маску на пол еблища и никто не замечает твоего страха.
К директору за повышением ты не ходишь, ссышь, сидишь и ждешь годами пока там сами решат тебе кинуть кусок.
В магазине ты быстро покупаешь продукты и моментально съебываешься в свою нору.
Если возникает какая-то коммунальная авария в твоей халупе, для тебя это конец света, так как очень некомфортно вызывать мастеров.
Тебя можно описать тремя словами — Неуверенность. Смущение. Отчаяние.
Короче я сам в такую пиздень как-то попал, ноги росли от перехода на удаленку.
Да я и до удаленки себя некомфортно чувствовал, а уж в изоляции весь этот пиздец в тысячу раз усилился.
В общем если все выше написанное про тебя, то я тебя обрадую — ни одна книга в мире тебе не поможет.
Как поступает большинство людей, когда пытаются разобраться с проблемой?
Правильно, начинают читать книжки и гуглить. Нахватавшись из книжек всяких советов по софт-скиллам и психологии, ты ебать такой идешь на переговоры, вроде и знаний до ебени матери уже получил, но чото нихуя не работает, ты снова засунул язык в жопу и мычишь.
Тебя по-прежнему трясет, ничего не изменилось. Ты прочитал кучу говна, которая тебе никак не помогла. Встань щас и выкинь нахуй все эти книги, нехуй на них тратить время и деньги. Они не помогут тебе победить страх.
А знаешь чо помогает? А вот чего — ходи регулярно на всякие встречи, выступай, комментируй, как-то проявляй себя, высказывай свое мнение, спорь.
Чем больше у тебя будет таких встреч, тем быстрее у тебя пройдет страх.
Твоя башка просто привыкнет к ситуации общения и ты уже не будешь так сильно бояться и ссаться в штанину. Сначала будет очень страшно, потом станет похуй.
Понятно, что такие встречи отнимают много времени, но это единственный способ вернутся к нормальной жизни и стать здоровым человеком.
Кстати есть еще один вариант. Можешь напиздярится в тряпки алкашкой. Но вариант такой себе. Страх пройдет, но могут быть побочки. Советовать этот вариант не буду. Тут сам решай.
Все книги по переговорам и психологии общения, дадут тебе базовые знания и стратегические скиллы. К примеру как правильно что-то попросить, как задать вопрос, как ебнуть смешной анекдот.
Грузить наукой не буду, все что ты читаешь в книгах остается у тебя в специальном разделе мозга (неокортекс). А вот боязнь попиздеть с людьми находится в зоне эмпатии.
Эта зона появилась хуй знает когда давно, в ней заложены базовые знания, как ходить, срать, жрать. Вот и переговоры входят в эту зону.
Поэтому чтобы научится разговаривать с людьми и не убегать со страху, нужно тренироваться. Тыж не сразу ходить научился, тренировался и научился, тут такой же принцип.
Прочитав книгу «Как научится играть на гитаре», ты нихуя не научишься играть на гитаре, тебе нужна гитара и практика. Без тренировки, не разовьется мышечный навык.
Не знаю, писал ли я вторую часть, но если найду, закину!
tags: #рабочиебудни #memories
—
Please open Telegram to view this post
VIEW IN TELEGRAM
5 144
Тут как-то ребята интересовались как написать свою оболочку, что-то вроде своего Баш-беляш. Ну дак вот.
ㅤ
Нашел для тебя минималистичные исходники на «сиськах».
Проект называется «psh» и он сейчас реально пока очень маленький.
А это значит, тебе не составит труда просмотреть 10 сорцов и на их основе создать что-то своё. Ну конечно если ты немного шаришь за «сиськи». Хотя там и так всё на поверхности.
➡️ Исходники тут / Демка тут
ps: А есть еще такой проект: mysh
tags: #utilites
—
🔔 @bashdays➡️ @gitgate
ㅤ
Нашел для тебя минималистичные исходники на «сиськах».
Проект называется «psh» и он сейчас реально пока очень маленький.
А это значит, тебе не составит труда просмотреть 10 сорцов и на их основе создать что-то своё. Ну конечно если ты немного шаришь за «сиськи». Хотя там и так всё на поверхности.
Если ты студент, можешь хорошо выебнуться своей длинной писькой перед преподами. И может тебя по телеку покажут, как когда-то создателя «BolgenOS» или антивируса Бабушкина.
ps: А есть еще такой проект: mysh
tags: #utilites
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Пишу очередной урок для LF и понадобилось мне нагенерить мусорного трафика в прометеус. Чтобы ребятам показать визуально как это будет выглядеть в графане.
Тестировщикам (QA) кстати тоже эта хуйня отлично зайдет, хайлоад там устроить.
ㅤ
Для таких дел я обычно использую 2 утилиты.
Первая (Bombardier) отлично подходит для генерации паразитного http трафика.
Вторая (Stress) можно нагрузить ядра процессора и позырить чо будет. Ну или над жестким диском надругаться или памятью.
Ну а чтобы протестировать no space left on device просто генерим большой файлик удобным тебе способом.
Установка элементарная:
Эти утилиты отлично подходят для тестирования разнообразных алертилок, к примеру alertmanager. Нагнал синтетических данных, получил соплю в графане, алертилка тригернулась и накричала в чатик. Отладил, задеплоил.
Красота и удобно! Для этих дел есть еще всякие
Такие дела, бери на вооружение, мож сгодится в хозяйстве.
tags: #utilites #highload #qa
—
🔔 @bashdays➡️ @gitgate
Тестировщикам (QA) кстати тоже эта хуйня отлично зайдет, хайлоад там устроить.
ㅤ
Для таких дел я обычно использую 2 утилиты.
1. Bombardier
2. Stress
Первая (Bombardier) отлично подходит для генерации паразитного http трафика.
bombardier -c 125 -n 10000000 http://localhost:8080
Вторая (Stress) можно нагрузить ядра процессора и позырить чо будет. Ну или над жестким диском надругаться или памятью.
stress --cpu 4
stress --hdd 100
stress --cpu 4 --vm 2 --io 1 --timeout 20
Ну а чтобы протестировать no space left on device просто генерим большой файлик удобным тебе способом.
Установка элементарная:
apt install bombardier stress
Эти утилиты отлично подходят для тестирования разнообразных алертилок, к примеру alertmanager. Нагнал синтетических данных, получил соплю в графане, алертилка тригернулась и накричала в чатик. Отладил, задеплоил.
Красота и удобно! Для этих дел есть еще всякие
wrk, ab, hey
и т.п. но с ними как-то у меня не сложилось.Такие дела, бери на вооружение, мож сгодится в хозяйстве.
tags: #utilites #highload #qa
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Как правильно хранить тяжелые файлы гит репах? Например, бинарники или что-то подобное.
ㅤ
Ответ очевидный и правильный — никак! В гитлабах/гитхаба/битбакетах установлены лимиты на размер отдельных файлов. Там что-то вроде 50 метров на файл дается.
В принципе можно уложиться. Но нахуй надо. Прикинь у тебя пайплайн вытягивает репу размером с 10 гигабайт. И так каждую сборку. Гит репа должна быть тощей и дрищёвой.
А всё тяжелое будь бобр-добр храни в s3 либо на других решениях.
НО если очень хочется прям в гите держать. Для этого существует
У
В gitea тоже можно
Как этим пользоваться?
Ставим к себе на машину:
Переходим в свой гит репозиторий и инициализируем:
В папке
На самом деле я хуй знает сколько он весит, это для примера.
Помечаем его:
После этого в папке files появится файл
Внутри этот файл выглядит так:
И по итогу бинарник в репе станет ссылкой на настоящий бинарник в
А еще можно вайлдкардами трекать:
Ну а дальше, как обычно:
Всё! Теперь твой большой файл аккуратно лежит в
Мне тут пришлось партнерских постов на эту неделю понабрать, реинвестируем в развитие @gitgate, так что рекомендую включить баннерную слепоту и сильно не триггериться. Спасибо за понимание!
Чтиво: про LFS можешь глянуть еще тут и тут.
tags: #git #devops
—
🔔 @bashdays➡️ @gitgate
ㅤ
Ответ очевидный и правильный — никак! В гитлабах/гитхаба/битбакетах установлены лимиты на размер отдельных файлов. Там что-то вроде 50 метров на файл дается.
В принципе можно уложиться. Но нахуй надо. Прикинь у тебя пайплайн вытягивает репу размером с 10 гигабайт. И так каждую сборку. Гит репа должна быть тощей и дрищёвой.
А всё тяжелое будь бобр-добр храни в s3 либо на других решениях.
НО если очень хочется прям в гите держать. Для этого существует
GIT LFS
. Дословно — Large File Storage (дохуя большое файловой хранилище).У
LFS
уже свои лимиты в отличие от нативного git репозитория. И это LFS
включен из коробки в гитлабах/гитхаба/битбакетах. Там уже размер файла может быть 1 гигабайт или что-то вроде того.В gitea тоже можно
LFS
через конфиг включить:[server]
LFS_START_SERVER = true
LFS_ALLOW_PURE_SSH = true
[lfs]
PATH = /home/gitea/data/lfs
Как этим пользоваться?
Ставим к себе на машину:
apt-get install git-lfs
brew install git-lfs
Переходим в свой гит репозиторий и инициализируем:
cd /home/user/linuxfactory/infra
git lfs install
В папке
/infra/roles/node_exporter/files
у меня лежит бинарник node_exporter который весит 100 мегабайтНа самом деле я хуй знает сколько он весит, это для примера.
Помечаем его:
cd /infra/roles/node_exporter/files
git lfs track "node_exporter"
После этого в папке files появится файл
.gitattributes
. Это правила для этого файла, которые указывают чтобы node_exporter улетал в LFS
.Внутри этот файл выглядит так:
node_exporter filter=lfs diff=lfs merge=lfs -text
И по итогу бинарник в репе станет ссылкой на настоящий бинарник в
LFS
.А еще можно вайлдкардами трекать:
git lfs track "*.jpg"
Ну а дальше, как обычно:
git add .
git commit -m "add lfs for node_exporter"
git push
Всё! Теперь твой большой файл аккуратно лежит в
LFS
, а в самом гит репозитории осталась лишь ссылка которая на этот файл ссылается.Мне тут пришлось партнерских постов на эту неделю понабрать, реинвестируем в развитие @gitgate, так что рекомендую включить баннерную слепоту и сильно не триггериться. Спасибо за понимание!
Чтиво: про LFS можешь глянуть еще тут и тут.
tags: #git #devops
—
Please open Telegram to view this post
VIEW IN TELEGRAM
5 52
Как я понял много кто за гит не шарит, опять же судя по ОЧЕНЬ частым вопросам в LF. Хотя очевидные вещи для одного, не всегда очевидны для другого.
Поэтому давай закрывать эти боли. Будет несколько серий постов, банально, но полезно. Пройдем максимально просто и быстро. Если чо непонятно пиши в комменты, будем разбираться.
Думал в рамках закрытого интенсива сделать, но пусть будет бесплатно.
ㅤ
Ну и первая проблема:
Не устану повторять — читай то, что тебе пишут!
Эта штука появляется в момент команды
В ошибке говорится — я хуй знает кто ты такой, давай уже определись и тогда все заработает.
То есть гит не знает от чьего имени оправлять коммит в репозиторий.
Как решать?
Ну оно тебе явно уже написало какие команды нужно забить. А забить надо пару строк:
Всё, теперь коммит подпишется и ошибка уйдет. Глобальные настройки обычно лежат в файле
Ну дак оно же глобально прописалось для всех реп??
Конечно, но это можно изменять в конфиге самой репы. То есть допустим у меня есть 2 репы:
В первом случае я хочу подписывать и отправлять коммиты как Roman Shubin, а во втором как Harbor Whore.
Сейчас на глобальном уровне в обоих случаях будет Roman Shubin.
Чтобы это пофиксить. Открываем нужную нам гит репу на своей машине, пиздуем в папку
Ну и в него добавляем секцию user.
Соответственно для второй репы делаем тоже самое, только меняем мыло и имя на нужное тебе.
Если руками в падлу писать, выполняем команды:
Тут отсутствует ключик
Ну и чтобы посмотреть кем подпишется коммит, есть команда:
Находясь в папке с репой, она выведет всю необходимую информацию. Порой очень полезно предварительно проверить, перед пушем в репу.
Ну и скучная, но важная теория:
Такие дела. Видишь, не все так сложно как ты думаешь. Завтра рассмотрим еще очень важные вещи, от которых жопа обычно горит на начальных этапах.
tags: #git #devops #linuxfactory
—
🔔 @bashdays➡️ @gitgate
Поэтому давай закрывать эти боли. Будет несколько серий постов, банально, но полезно. Пройдем максимально просто и быстро. Если чо непонятно пиши в комменты, будем разбираться.
Думал в рамках закрытого интенсива сделать, но пусть будет бесплатно.
ㅤ
Ну и первая проблема:
Author identity unknown
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: empty ident name (for <user@dev.>) not allowed
Не устану повторять — читай то, что тебе пишут!
Эта штука появляется в момент команды
git commit
.В ошибке говорится — я хуй знает кто ты такой, давай уже определись и тогда все заработает.
То есть гит не знает от чьего имени оправлять коммит в репозиторий.
Как решать?
Ну оно тебе явно уже написало какие команды нужно забить. А забить надо пару строк:
git config --global user.email "hello@devopsina.ru"
git config --global user.name "Roman Shubin"
Всё, теперь коммит подпишется и ошибка уйдет. Глобальные настройки обычно лежат в файле
~/.gitconfig
Ну дак оно же глобально прописалось для всех реп??
Конечно, но это можно изменять в конфиге самой репы. То есть допустим у меня есть 2 репы:
1. BashDays
2. LinuxFactory
В первом случае я хочу подписывать и отправлять коммиты как Roman Shubin, а во втором как Harbor Whore.
Сейчас на глобальном уровне в обоих случаях будет Roman Shubin.
Чтобы это пофиксить. Открываем нужную нам гит репу на своей машине, пиздуем в папку
.git
и открываем на редактирование файл config
.Ну и в него добавляем секцию user.
[user]
name = Roman Shubin
email = hello@devopsina.ru
Соответственно для второй репы делаем тоже самое, только меняем мыло и имя на нужное тебе.
Если руками в падлу писать, выполняем команды:
git config user.email "hello@devopsina.ru"
git config user.name "Roman Shubin"
Тут отсутствует ключик
--global.
Ну и чтобы посмотреть кем подпишется коммит, есть команда:
git config --list --show-origin
Находясь в папке с репой, она выведет всю необходимую информацию. Порой очень полезно предварительно проверить, перед пушем в репу.
Ну и скучная, но важная теория:
- Если вы используете GitHub, GitLab или другую платформу, и хотите, чтобы ваши коммиты были связаны с вашим аккаунтом, то email, указанный в Git, должен совпадать с email, привязанным к вашему аккаунту на этой платформе. Это нужно для того, чтобы платформа могла корректно отображать ваши коммиты в вашем профиле.
- Если email не совпадает, коммиты все равно будут отправлены, но они не будут автоматически связаны с вашим аккаунтом на платформе.
Такие дела. Видишь, не все так сложно как ты думаешь. Завтра рассмотрим еще очень важные вещи, от которых жопа обычно горит на начальных этапах.
tags: #git #devops #linuxfactory
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Еще один частый затык с гитом — у тебя создана чистая репа в гитлабе и локально на машине лежит уже наработанный проект. Но проект еще не под гитом.
ㅤ
Как заебенить проект в репу в гитлабе?
Первый вариант
Самый беспроигрышный и лёгкий вариант — это склонировать себе эту чистую репу в какую-нибудь папку и затем просто перетащит в эту папку все файлы из твоего проекта.
Приватные репы клонируй через
Если попробуешь склонировать приватную репу через https, оно запросит у тебя логин и пароль от учетки гитлаба/гитхаба. Но такие вещи обычно делают на ssh ключах, без хуйни и паролей.
Есть еще хороший хак, если в к конце этой команды добавить символ точки «.» через пробел, то репка склонируется в текущую папку (не будет создана папка infra) НО при условии что папка на локальной машине у тебя пустая, иначе получишьпо ебалу ошибку.
Ну а дальше по классике:
Не забываем что однажды получишь сообщение:
Всё. Никаких ебучих конфликтов, тонны комманд и т.п. все прозрачно и просто. На первых этапах прям рекомендую использовать этот способ. Меньше говна хлебнешь.
Второй вариант
Как видишь тут уже дерьма побольше, сложновато запомнить неокрепшему уму. К тому же можешь словить ряд ошибок:
Придется гуглить, делать
Теперь даже если что-то локально нахуевертил в гите, просто ёбни папку
tags: #git #devops #linuxfactory
—
🔔 @bashdays➡️ @gitgate
ㅤ
Как заебенить проект в репу в гитлабе?
Первый вариант
Самый беспроигрышный и лёгкий вариант — это склонировать себе эту чистую репу в какую-нибудь папку и затем просто перетащит в эту папку все файлы из твоего проекта.
Приватные репы клонируй через
git@
, а публичные можешь и через https
. Если попробуешь склонировать приватную репу через https, оно запросит у тебя логин и пароль от учетки гитлаба/гитхаба. Но такие вещи обычно делают на ssh ключах, без хуйни и паролей.
git clone git@gitlab.com:linuxfactory/infra.git
Есть еще хороший хак, если в к конце этой команды добавить символ точки «.» через пробел, то репка склонируется в текущую папку (не будет создана папка infra) НО при условии что папка на локальной машине у тебя пустая, иначе получишь
Ну а дальше по классике:
git add .
git commit -m "initial commit"
git push
Не забываем что однажды получишь сообщение:
Author identity unknown
, про этот случай я рассказывал вчера.Всё. Никаких ебучих конфликтов, тонны комманд и т.п. все прозрачно и просто. На первых этапах прям рекомендую использовать этот способ. Меньше говна хлебнешь.
Второй вариант
cd /path/to/project
git init
git add .
git commit -m "initial commit"
git remote add origin https://gitlab.com/username/reponame.git
git push -u origin master
Как видишь тут уже дерьма побольше, сложновато запомнить неокрепшему уму. К тому же можешь словить ряд ошибок:
fatal: repository not found
remote: HTTP Basic: Access denied
remote origin already exists
Updates were rejected because the tip of your current branch is behind
error: failed to push some refs
Придется гуглить, делать
rebase
или вообще конфликты решать. А решать конфликты это то еще удовольствие.Теперь даже если что-то локально нахуевертил в гите, просто ёбни папку
.git
в проекте. Сделай все по первому способу и всё починится. Это намного быстрее чем разгребать и дебажить неочевидные ошибки.tags: #git #devops #linuxfactory
—
Please open Telegram to view this post
VIEW IN TELEGRAM
И снова здрасти, продолжаем больные темы.
А еще ребят пиздец напрягает каждый раз делать:
Если что-то напрягает, это что-то нужно оптимизировать. Тут всё как обычно банально. Делаем алиас и избавляемся от рутины.
ㅤ
Умеешь алиасы делать? Ладно, раз тут разжевываем, покажу.
Открываешь
Не забываем сделать
В описание коммита попадет текущая дата и время. В продуктовой команде тебе конечно пизды дадут за это, но если что-то пилишь для себя то вполне допустимо.
Ну или если работаешь в VSCode или т.п. там плагины для гита есть, мышкой можешь в один клик отправлять все свои изменения в репу, без всяких алиасов.
А можно еще прям в конфиге гита сделать алиас
либо командой:
Тогда команда для коммита будет такая:
Пример файла с нативными алиасами:
тыкни на блок и он раскроется (это спойлер):
Нихуя сложного, правда же?
А вообще девопс должен знать всего две основных команды:
Всё остальное лежит на плечах разработчиков. Пусть они ебуться с мерджами, конфликтами и т.п. У девопса другие задачи.
Если уж нужно что-то смержить, смержить можно мышкой через морду или просто забить хуй.
Вот так и живем! Пользуйся!
tags: #git #devops #linuxfactory
—
🔔 @bashdays➡️ @gitgate
А еще ребят пиздец напрягает каждый раз делать:
git add .
git commit -m "ебальник убивальник"
git push
Если что-то напрягает, это что-то нужно оптимизировать. Тут всё как обычно банально. Делаем алиас и избавляемся от рутины.
ㅤ
Умеешь алиасы делать? Ладно, раз тут разжевываем, покажу.
Открываешь
~/.bashrc
или чо там у тебя ~/.zshrc
и пиздяришь:alias gg="git add . && git commit -m \"$(date +'%d-%m-%Y %H:%M:%S')\" && git push"
Не забываем сделать
source ~/.bashrc && ~/.zshrc
. Теперь когда нужно что-то закомитить и отправить. Просто пишем «gg» и дело в шляпе.В описание коммита попадет текущая дата и время. В продуктовой команде тебе конечно пизды дадут за это, но если что-то пилишь для себя то вполне допустимо.
Ну или если работаешь в VSCode или т.п. там плагины для гита есть, мышкой можешь в один клик отправлять все свои изменения в репу, без всяких алиасов.
А можно еще прям в конфиге гита сделать алиас
[alias]
cm = "commit -m"
либо командой:
git config --global alias.cm "commit -m"
Тогда команда для коммита будет такая:
git cm "initial commit"
Пример файла с нативными алиасами:
тыкни на блок и он раскроется (это спойлер):
[alias]
a = add
aa = add .
c = commit
cm = commit -m
s = status
pl = pull
pu = push
df = diff
b = branch
bl = branch --all
bd = branch --delete
bD = branch -D
bren = branch -m
bdr = push origin --delete
fa = fetch --all
fp = fetch -p
t = tag
tf = fetch --tags
tpu = push origin --tags
tpuacq = push acquia --tags
td = tag -d
tpur = push origin --delete
tpuacq = push acquia --delete
co = checkout
cob = checkout -b
resh = reset --hard
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --graph
clear = clean -f -d
clearw = checkout -- .
Нихуя сложного, правда же?
А вообще девопс должен знать всего две основных команды:
git push
и git pull
Всё остальное лежит на плечах разработчиков. Пусть они ебуться с мерджами, конфликтами и т.п. У девопса другие задачи.
Если уж нужно что-то смержить, смержить можно мышкой через морду или просто забить хуй.
Вот так и живем! Пользуйся!
tags: #git #devops #linuxfactory
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Такс, по гиту немного прошлись (но еще вернемся), теперь по ssh ключам. Для многих как оказалось тоже большая проблема. Но это база, поэтому нужно с этим научиться жить. Принять и простить.
Смысл тут такой: у тебя есть 2 ключа, один приватный, второй публичный.
Приватный ключ ты хранишь как свою жопу и задом к лесу не поворачиваешься.
Публичный ключ прописываешь на удаленных серверах, к которым тебе нужно подключиться.
А если всё хуева… то отправляемся дебажить, как эффектевно дебажить расскажу попозже.
ㅤ
Давай тыкать. Генерим RSA ключ на своей машине.
Про форматы ключей rsa/dsa напишу также отдельно, пока делаем rsa.
Эта команда сгенерит без лишних вопросов новый ключ и положит его в
Параметр
Остальные параметры думаю для тебя очевидны. Тип ключа, битность, куда положить.
Теперь у тебя в папке
Соответственно первый это приватный (храним его как свою жопу), второй это публичный (шлюха ключ).
Если попал в ситуацию, что публичный ключ проебался, можешь его сделать на основе приватного ключа, делается так:
Дело в шляпе. Тут самое главное не въебать приватный ключ. Ну а если въебал, сочувствую.
А дальше… а дальше нужно публичную часть ключа прописать на сервер, к которому ты хочешь подключиться.
Делается так:
Если у тебя свежий сервак, то по умолчанию включен вход по паролю, на эту команду оно запросит пароль. Введи разок и ключик залетит на сервер.
➡️ Важно! Этой командой мы добавили на удаленный сервер ключ для пользователя root.
То есть подключиться по ключам на сервер ты сможешь только под пользователем root. Если у тебя на удаленном сервере какой-то есть юзер, например: suchka, то и команда будет такой:
Тут мы поменяли root на suchka.
Теперь получается я могу используя приватный ключ
То есть под рутом и под сучком. Аналогично добавляешь ключи для других юзеров.
Вообще под рутом не рекомендую ключи какие-то прописывать, делай сразу для юзера и через sudoers наруливай ему права.
Я обычно не пользуюсь
Но тут есть ряд нюансов. У файла
А еще могут возникнуть проблемы с копипастой, не всегда удается скопировать ключик верно. Поэтому рекомендую сразу привыкать к хорошему и пользоваться
Ну и однострочник на баше для копирования ключа:
Вечерком продолжим. Пока мотай на ус.
tags: #git #devops #linuxfactory
—
🔔 @bashdays➡️ @gitgate
Задача — хочу с локальной машины подключиться к серверу по 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. Если у тебя на удаленном сервере какой-то есть юзер, например: 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
—
Please open Telegram to view this post
VIEW IN TELEGRAM
На прохождение Cyber Shadow я потратил 20 часов и сдох 727 раз. Что сказать, моя жопа давно так не горела, со времен Ninja Gaiden на Денди. Но своеобразное удовольствие я всё же получил.
Ладно, сегодня продолжаем серию постов #linuxfactory
ㅤ
SSH ключи мы с тобой сделали, на сервере их прописали, надеюсь хорошо разжевал и ты проникся.
Но это еще не всё, сервер не готов запускать тебя по ключам. Сейчас это исправим.
Пиздуем на сервер под рутом, на тот самый куда ты закинул публичную часть ключа и открываем на редактирование файл
Активируем эти строчки:
Потом делаем так:
Отключаем пароли, запрещаем вход под рутом, ну и так по мелочи. Мелочи расписал в комментах.
Тут есть нюанс, при
Этот файл содержит реврайт, в нем будет
После того как ты сделал все изменения, нужно выполнить:
Если первая команда отработала без ошибок, то запускаем reload.
➡️ Важно! Терминал в котором ты всё это настраиваешь — закрывать не стоит, сессия будет жить даже если накосячил.
Сначала открой второй терминал и проверь что ты можешь снова войти на сервер по ключам или как минимум по паролю если сервер его запросил.
В некоторых современных дистрибутивах, перезагрузка sshd поставлена на поток, ты меняешь конфиг и если с ним все ок, конфиг автоматически перечитывается службой. Носи это у себя в голове.
Ну и еще про конфиги ssh, на сервере есть пару похожих конфигов, их часто путают и делают хуйню.
Первый это настройки поведения клиента. То есть если ты с этого сервера решишь куда-то подключиться по ssh, то применятся настройки из этого файла.
А второй соответственно это серверные настройки. Твоя локальная машина это клиент, подключается к серверу, сервер берет настройки из
Вот и всё. Если читал внимательно, у тебя в голове должен был сложиться правильный пазл. Ну и доступ по ключам тоже заработает.
Тыкай, проверяй, задавай вопросы в комментах и пиши свои дополнения. Я человек пожилой, мог чего-то нахуевертить и упустить.
Увидимся, это еще далеко не всё.
tags: #git #devops #linuxfactory
—
🔔 @bashdays➡️ @gitgate
Ладно, сегодня продолжаем серию постов #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
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Скинул мне как-то давненько NPC свой ssh ключ, чтобы я прописал его на сервере. Смотрю я на этот ключик и понять не могу — ты блядь через что это сделал?
И был он гораздо короче тех к которым я привык. Всего 256 бит. А привык я естественно к RSA.
ㅤ
Хуйня! Чем короче тем уязвимее — подумал я и запросил нормальный, тот который ssh-rsa.
Ну а потом спустя какое-то время проресерчив тему, узнал что
Причем такой ключ гораздо надежнее чем легаси rsa. Короче не значит хуёвее.
Распространенные типы ключей:
Чтобы сгенерить такие ключи, нужно прописать их тип в параметр -t
А дальше делаем всё как написано тут и тут и ходим на сервер по ключам.
Почему «короче» не значит хуёвее?
Давай сразу на примерах.
Представь, что у тебя есть два лабиринта:
Хотя лабиринт с простым числом (RSA) кажется меньше, его можно быстро решить с помощью методов, использующих факторизацию больших чисел.
А вот лабиринт с эллиптической кривой (ED25519) будет гораздо более сложным для прохождения, даже если его размеры кажутся меньше, потому что для нахождения решения требуется гораздо больше вычислений. Хотя ED25519 ключ меньше по размеру (256 бит против 2048 бит в RSA), его решение гораздо сложнее из-за самой природы криптографии.
🅰️ 🅰️
Есть еще ключи в формате ppk, это те ключи которые можно сгенерить с помощью ебанутого PuTTYgen.
Порой мне такие тоже скидывают, чтобы я их прописал. Но такие персонажи сразу идут — нахуй!
Чтобы сконвертить такой ppk в нормальный ключ openssh, в самой морде PuTTYgen нужно сделать экспорт:
Либо через командную строку:
Устанавливаем нужный софт, конвертируем, высекаем публичный ключ.
🅰️ 🅰️
Для меня ed25519 всё равно чуждый, привык что-ли я к rsa, поэтому предпочитаю именно его. Ну а ты сразу привыкай к хорошему.
ED25519 кстати нормально поддерживается в gitlab/github/gitea и отлично подходит для высоконагруженных систем и аутентификации.
tags: #git #devops #linuxfactory
—
🔔 @bashdays➡️ @gitgate
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
—
Please open Telegram to view this post
VIEW IN TELEGRAM
4 96
Немного съедем с темы и решим задачку с монтированием виндового раздела (BitLocker) в Linux.
Если у тебя есть виндовый диск который запечатан битлокером, оказывается нифига не просто его подключить.
При попытке монтирования получишь ошибку — анкновн файлсистем тайп БитЛохер.
Всё решается с помощью утилиты dislocker.
После установки создаем пару папок:
Смотрим зашифрованные разделы
Расшифровываем раздел, подставляем нужный partition и password. Partition берем тот что нашли через
Монтируем:
Чтобы подключить раздел только для чтения, добавь в обе команды ключ -r. Рекомендую все же подключать с этим ключом.
Если получил ошибку:
То укажи явно тип файловой системы:
Для ntfs:
Для exFat:
Еще момент, вместо пароля можно использовать пароль восстановления, файла BEK или открытого ключа с помощью которого производилось шифрование.
Для пароля восcтановления:
Для открытого ключа:
Для BEK:
Ну вот и всё. Теперь ты умеешь подключить диски с BitLocker.
А что бы такой диск подключался автоматически, камон в fstab:
Подставляем свои значения и радуемся.
➡️ Репа dislocker тут, можешь глянуть что там у нее под капотом.
Кстати диски с битлокером отлично открываются в Fedora Silverblue из коробки (с помощью recovery password). По крайней мере в прошлом году точно открывались. Можешь ее на виртуалку поставить и развлекаться.
tags: #linux #windows #utilites
—
🔔 @bashdays➡️ @gitgate
Если у тебя есть виндовый диск который запечатан битлокером, оказывается нифига не просто его подключить.
При попытке монтирования получишь ошибку — анкновн файлсистем тайп БитЛохер.
Всё решается с помощью утилиты 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
Подставляем свои значения и радуемся.
Кстати диски с битлокером отлично открываются в Fedora Silverblue из коробки (с помощью recovery password). По крайней мере в прошлом году точно открывались. Можешь ее на виртуалку поставить и развлекаться.
tags: #linux #windows #utilites
—
Please open Telegram to view this post
VIEW IN TELEGRAM
Вот сделал ты все как написано тут и тут и тут, сгенерил ключи и подготовил сервера, но сука все равно что-то какая-то шляпа:
Искал медь, обосрал медведь…
Что я делаю не так?
Всё правильно, твой ssh клиент не знает, что ты пытаешься подключиться по ключам. Он идет на сервер по дефолту и ожидает что запросят пароль.
ㅤ
А вход по паролям-то мы отключили!
Не ссым, все уже придумали за нас.
➡️ Первый вариант:
Через ключ -i указываем путь до своего ключа и со свистом залетаем на сервер.
Теперь твой клиент знает — ага, эта бестолочь догадалась указать ключ, ну ок, прогнусь.
Указывать каждый раз -i очень заёбисто, особенно если у тебя ssh ключей вагон и тележка, легко запутаться. Но тут тоже уже все придумано за нас.
➡️ Второй вариант:
Захуячиваем ssh-agent
Запускаем агент в фоне:
И добавляем в него нужные ключи:
Смотрим что у нас торчит в агенте:
Ага, все ключи добавлены. Теперь не нужно указывать ключ -i, агент сам подкинет нужный ключ. Ну и ансибл сразу засвистит-запердит как надо.
Прикол с агентом:
Если на ssh ключе у тебя установлен пароль, то достаточно один раз его ввести и все последующие разы он у тебя не запрашивается.
Не прикол с агентом:
Как только ты закроешь консоль, агент уедет на кладбище со всеми ключами.
Решение:
Хуярим в
Теперь при открытии консоли, у тебя будет автоматически запускаться ssh-agent и добавляться нужные ключи.
Для zsh, в конфиге
Включаем плагин ssh-agent и добавляем все нужные ключи. Теперь из коробки у тебя будет работать агент и в нем будут подгружены ключи.
➡️ Третий вариант:
Через конфиг
Теперь когда ты будешь подключаться по ssh к серверу
Таким способом разруливают разные ключи для разных учеток в гитхабах/гитлабах.
Например, так:
➡️ Четвертый вариант:
Сделать алиасы:
И потом просто в консольке вбивать stage или prod, все автоматически подставится.
🅰️ 🅰️
Я использую все варианты, в зависимости от ситуации, но в предпочтениях у меня ssh-agent и алиасы.
Да, в ансибле можно тоже прописать хардкодом ssh ключ, чтобы не использовать агентов и т.п.
Через конфиг ansible.cfg:
Через переменную окружения:
Есть еще 100500 способов как в ансибле это передать, я показал основные. Если хочешь узнать про все, велком в LF.
Если знаешь еще какие-то варианты и приколюхи с ключами, камон в комменты, соберем в кучу полезняхи.
С пятницей друзья!
tags: #git #devops #ssh #linuxfactory
—
🔔 @bashdays➡️ @gitgate
Искал медь, обосрал медведь…
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
—
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Ой чо я тебе принес!
Tower Networking Inc.
ㅤ
На твоём попечении многоквартирный дом.
- Собираем сетевой периметр
- Конфигурируем сервера
- Сканируем сетку и пингуем девайсы
- Бегаем как олень по этажам
- Задерживают ЗП и кормят завтраками
- Подвалы и засраные голубями шкафы
- Девушки которые готовы дать инженеру
- Дерем деньги за услуги
- Разнообразие клиентов (долбаебы присутствуют)
- Вечерами выгораешь и бухаешь
- Можно играть с друзьями
Игруха пока что в раннем доступе, можно качнуть бесплатную демку. Но демки вполне хватает, чтобы проникнуться атмосферой профессии.
Единственный минус, игруха под винду, но для тебя я думаю это не проблема, вполне реально на виртуалке погонять, не требовательная к ресурсам.
➡️ Качать тут, но нужен стим
➡️ Геймлей можно попырить тут
tags: #games
—
🔔 @bashdays➡️ @gitgate
Tower Networking Inc.
ㅤ
Халявный симулятор интернет провайдера. Обжимаем кабеля, конфигуряем циски, микротики, решаем проблемы, выслушиваем дерьмо от жильцов в свой адрес, короче полное погружение.
На твоём попечении многоквартирный дом.
- Собираем сетевой периметр
- Конфигурируем сервера
- Сканируем сетку и пингуем девайсы
- Бегаем как олень по этажам
- Задерживают ЗП и кормят завтраками
- Подвалы и засраные голубями шкафы
- Девушки которые готовы дать инженеру
- Дерем деньги за услуги
- Разнообразие клиентов (долбаебы присутствуют)
- Вечерами выгораешь и бухаешь
- Можно играть с друзьями
Игруха пока что в раннем доступе, можно качнуть бесплатную демку. Но демки вполне хватает, чтобы проникнуться атмосферой профессии.
Единственный минус, игруха под винду, но для тебя я думаю это не проблема, вполне реально на виртуалке погонять, не требовательная к ресурсам.
tags: #games
—
Please open Telegram to view this post
VIEW IN TELEGRAM
А я всё же нашел вторую часть, как оказалась есть и третья и четвертая, упоролся видимо знатно в 2021 году. Ну чо, раз просили, сливаю, мож кого замотивирует.
Как научиться договариваться. Часть 2.
🅰️ 🅰️
Будь готов к встрече заранее!
ㅤ
Если у тебя намечается какая-то судьбоносная встреча или переговоры, то у тебя проблема!
Ты довел ситуацию до края, раз эта встреча имеет место быть. Тебе важен результат. Но почему ты привязал важность этого результата именно к этой встрече? Ща на примере разберем.
Короче у меня есть клиент, он от меня съябывается, я назначил ему встречу и хочу спасти наши отношения, хочу дальше подсасывать с него денежку.
Вопрос — какого хера я вообще довел ситуацию до такого пиздеца? Мне надо встречаться с клиентом и очко ему облизывать. Я блядь нервничаю. Почему я раньше нихуя не сделал и дотянул до последнего? В чем моя проблема?
Ну или как вариант, решил ты устроиться на новую работу, тебя трясет как сучку, майка воняет, пальцы вспотели. Ебаться сраться. Ситуация.
Но в чем смысл так нервничать? Если ты за себя знаешь, знаешь пацанов на районе, хуль ссаться-то. Синдром самозванца? Да поебать, на любой товар найдется покупатель, будь ты последним гавном, тебя все равно купят.
Суть то тут какая со всех этих историй — если косяков за тобой нет, любые встречи и переговоры пройдут как по маслу. Никто тебе не предъявит. Это как в хату заходить, если нормальный пацан, то в шерсть не выкинут.
Проработай план
Сядь и подумай, а что вообще будет на этой встрече? Сформулируй понимание. Продумай максимально больше вариантов куда могут зайти переговоры. Тогда тебе не понадобится импровизировать, ты будешь с готовыми кейсами и на любые выпады собеседника, ответишь четко и по делу. Без мычания и ЭЭ, МУУ, ХРЮЮ.
Я обычно накидываю структуру разговора и варианты вопросов которые мне могут задать. На эти вопросы я сразу пишу ответы. Конечно не всегда всё идетпо пизде по плану, но 99% я успешно закрываю ранее подготовленными ответами.
Вообще план накидать надо примерно такой:
Повестка — О чем будем пиздеть на этой встрече
Чувства — Что будет чувствовать ты и твой собеседник во время этой встречи?
Желаемый результат — Чего добиться то хочешь? А чо хочет твой собеседник?
На самом деле когда начинаешь накидывать этот план, на первом этапе Повестки, можно вообще встречу забрить, если ты уверен что по итогу встречи результат будет положительным в твою пользу.
Например. Пишем повестку для встречи — Будем ли автоматизировать продление SSL сертификатов для основного сайта?
Ничего не смущает? Ты сделаешь встречу, где результат будет 100% положительным в твою пользу. Автоматизация нужна, сертификаты важны, никто нахуй не пошлет, а скажут — да, ок делай.
Ну и нахера тогда встреча? Проебешь 15 минут своего времени и 15 минут собеседника, чтобы убедиться в том что заранее знаешь. Оно того стоит?
Конечно нет. Назначай встречи, когда они реально нужны. Хочешь просто попиздеть — идина нахуй в дискорд или спустись к подъезду и с бабками затри за кубер.
Вообще когда ко мне приходит коллега и просит внезапно созвонится и решить какой-то пиздец супер важный вопрос, я говорю — чувак, у меня гарнитуры нет, если срочно, пиши текстом, решим.
Чувак пишет текстом — а можно я в дженкинсе свою джобу поконфигуряю?
Блядь... у тебя доступ есть, создавай, конфигуряй, от меня-то чо надо?
Что бы я сказал - можно? Ну ладно, говорю - можно. Он уходит!
Но если бы я согласился на созвон, мне бы полчаса ебали мозги за погоду, детей, котов, а в конце задали бы тот же вопрос — а можно мне джобу сконфигурять?
Так что будь гибче, не проебывай свое драгоценное время на пустые созвоны.
Но естественно для раскачки твоего анти-интроверта, советую вообще на всю эту хуйню подписываться и везде ходить и просто разговаривать. Эт потом начнешь пальцы гнуть и хуи в уши другим вкручивать.
tags: #рабочиебудни #memories
—
🔔 @bashdays➡️ @gitgate
Первая часть тут и там
Как научиться договариваться. Часть 2.
Будь готов к встрече заранее!
ㅤ
Если у тебя намечается какая-то судьбоносная встреча или переговоры, то у тебя проблема!
Ты довел ситуацию до края, раз эта встреча имеет место быть. Тебе важен результат. Но почему ты привязал важность этого результата именно к этой встрече? Ща на примере разберем.
Короче у меня есть клиент, он от меня съябывается, я назначил ему встречу и хочу спасти наши отношения, хочу дальше подсасывать с него денежку.
Вопрос — какого хера я вообще довел ситуацию до такого пиздеца? Мне надо встречаться с клиентом и очко ему облизывать. Я блядь нервничаю. Почему я раньше нихуя не сделал и дотянул до последнего? В чем моя проблема?
Ну или как вариант, решил ты устроиться на новую работу, тебя трясет как сучку, майка воняет, пальцы вспотели. Ебаться сраться. Ситуация.
Но в чем смысл так нервничать? Если ты за себя знаешь, знаешь пацанов на районе, хуль ссаться-то. Синдром самозванца? Да поебать, на любой товар найдется покупатель, будь ты последним гавном, тебя все равно купят.
Суть то тут какая со всех этих историй — если косяков за тобой нет, любые встречи и переговоры пройдут как по маслу. Никто тебе не предъявит. Это как в хату заходить, если нормальный пацан, то в шерсть не выкинут.
Проработай план
Сядь и подумай, а что вообще будет на этой встрече? Сформулируй понимание. Продумай максимально больше вариантов куда могут зайти переговоры. Тогда тебе не понадобится импровизировать, ты будешь с готовыми кейсами и на любые выпады собеседника, ответишь четко и по делу. Без мычания и ЭЭ, МУУ, ХРЮЮ.
Я обычно накидываю структуру разговора и варианты вопросов которые мне могут задать. На эти вопросы я сразу пишу ответы. Конечно не всегда всё идет
Вообще план накидать надо примерно такой:
Повестка — О чем будем пиздеть на этой встрече
Чувства — Что будет чувствовать ты и твой собеседник во время этой встречи?
Желаемый результат — Чего добиться то хочешь? А чо хочет твой собеседник?
На самом деле когда начинаешь накидывать этот план, на первом этапе Повестки, можно вообще встречу забрить, если ты уверен что по итогу встречи результат будет положительным в твою пользу.
Например. Пишем повестку для встречи — Будем ли автоматизировать продление SSL сертификатов для основного сайта?
Ничего не смущает? Ты сделаешь встречу, где результат будет 100% положительным в твою пользу. Автоматизация нужна, сертификаты важны, никто нахуй не пошлет, а скажут — да, ок делай.
Ну и нахера тогда встреча? Проебешь 15 минут своего времени и 15 минут собеседника, чтобы убедиться в том что заранее знаешь. Оно того стоит?
Конечно нет. Назначай встречи, когда они реально нужны. Хочешь просто попиздеть — иди
Вообще когда ко мне приходит коллега и просит внезапно созвонится и решить какой-то пиздец супер важный вопрос, я говорю — чувак, у меня гарнитуры нет, если срочно, пиши текстом, решим.
Чувак пишет текстом — а можно я в дженкинсе свою джобу поконфигуряю?
Блядь... у тебя доступ есть, создавай, конфигуряй, от меня-то чо надо?
Что бы я сказал - можно? Ну ладно, говорю - можно. Он уходит!
Но если бы я согласился на созвон, мне бы полчаса ебали мозги за погоду, детей, котов, а в конце задали бы тот же вопрос — а можно мне джобу сконфигурять?
Так что будь гибче, не проебывай свое драгоценное время на пустые созвоны.
Но естественно для раскачки твоего анти-интроверта, советую вообще на всю эту хуйню подписываться и везде ходить и просто разговаривать. Эт потом начнешь пальцы гнуть и хуи в уши другим вкручивать.
tags: #рабочиебудни #memories
—
Please open Telegram to view this post
VIEW IN TELEGRAM
2 66
Привет, сегодня без излишеств, организм решил что хватит с него и повысил температуру до некомфортных значений. Домашки проверю как отпустит. На связи! Не болейте!
Пока я борюсь за выживание, скидываю тебе третью часть чтива. Не всё технически посты пилить.
Как научиться договариваться. Часть 3.
ㅤ
На встречах нужно постоянно быть в фокусе чувств. То есть надо обращать внимание на сколько тебе хуева и на сколько хуево твоему собеседнику. Это очень важная переменная в переговорах.
Если ты или собеседник начнете примерять на себя пиджак жертвы, вся твоя охуеть важная встреча заведет прямиком коту в жопу.
И ничо хорошего с этого естественно не получится. Ты пострадавший, он пострадавший, включается защитная реакция и вы оба идëте нахуй.
А тот кто пострадавший, всегда будет бычить в ответ на все более-менее разумные закидоны. Ты такое сразу почувствуешь, вроде все правильно говоришь, а в ответ получаешь негативное сморкание.
Поэтому и надо быть начеку, заранее просекая настроение и чувства твоего собеседника.
Как ты читаешь чувства
Прикинь простую ситуацию: Шараёбишься ты с женой по магазинам, проходишь мимо прилавка с пивом и такой — бля, надо пивка взять.
Потом смотришь на жену и думаешь — тааааккк, полчаса назад я не купил ей сапоги, она в хуевом настроении, взять сейчас пивка без последствий будет пиздец проблематично. Чо делать? Надо купить ей сапоги, а потом взять пивка.
Что важно в этом примере
1. Ты прочитал эмоции жены (жена пиздец злая без сапог)
2. Проанализировал ситуацию (если взять пиво, будет больно)
3. Нашел компромисс (купил сапоги)
4. Снял с жены пиджак жертвы (жена пиздец добрая с сапогами)
5. Добился своего без последствий (взял пива, все счастливы)
Взрослые ведут себя так-же как и дети. Не купили игрушку, начинают выебываться. Вот и с тобой также, не повысили зарплату, начал хуева работать.
Работодатель жертва и ты сука жертва, у всех проблемы. А что нужно было сделать? Правильно! Прочитать, проанализировать чувства и затем ёбнуть именно так, чтобы и ЗП тебе подняли и директор твой понял зачем он поднимает тебе ЗП.
Не должно быть никакого негатива, гнева, злости. Каждая сторона должна остаться с мыслью, что все сделано правильно. Не должно быть сомнений!
Как-то так, продолжение следует.
tags: #рабочиебудни #memories
—
🔔 @bashdays➡️ @gitgate
Первая часть
Вторая часть
Как научиться договариваться. Часть 3.
ㅤ
На встречах нужно постоянно быть в фокусе чувств. То есть надо обращать внимание на сколько тебе хуева и на сколько хуево твоему собеседнику. Это очень важная переменная в переговорах.
Если ты или собеседник начнете примерять на себя пиджак жертвы, вся твоя охуеть важная встреча заведет прямиком коту в жопу.
И ничо хорошего с этого естественно не получится. Ты пострадавший, он пострадавший, включается защитная реакция и вы оба идëте нахуй.
А тот кто пострадавший, всегда будет бычить в ответ на все более-менее разумные закидоны. Ты такое сразу почувствуешь, вроде все правильно говоришь, а в ответ получаешь негативное сморкание.
Поэтому и надо быть начеку, заранее просекая настроение и чувства твоего собеседника.
Как ты читаешь чувства
Прикинь простую ситуацию: Шараёбишься ты с женой по магазинам, проходишь мимо прилавка с пивом и такой — бля, надо пивка взять.
Потом смотришь на жену и думаешь — тааааккк, полчаса назад я не купил ей сапоги, она в хуевом настроении, взять сейчас пивка без последствий будет пиздец проблематично. Чо делать? Надо купить ей сапоги, а потом взять пивка.
Что важно в этом примере
1. Ты прочитал эмоции жены (жена пиздец злая без сапог)
2. Проанализировал ситуацию (если взять пиво, будет больно)
3. Нашел компромисс (купил сапоги)
4. Снял с жены пиджак жертвы (жена пиздец добрая с сапогами)
5. Добился своего без последствий (взял пива, все счастливы)
Взрослые ведут себя так-же как и дети. Не купили игрушку, начинают выебываться. Вот и с тобой также, не повысили зарплату, начал хуева работать.
Работодатель жертва и ты сука жертва, у всех проблемы. А что нужно было сделать? Правильно! Прочитать, проанализировать чувства и затем ёбнуть именно так, чтобы и ЗП тебе подняли и директор твой понял зачем он поднимает тебе ЗП.
Не должно быть никакого негатива, гнева, злости. Каждая сторона должна остаться с мыслью, что все сделано правильно. Не должно быть сомнений!
Как-то так, продолжение следует.
tags: #рабочиебудни #memories
—
Please open Telegram to view this post
VIEW IN TELEGRAM
2 59
Такс, теперь в тему как отлаживать ssh подключения к серверу. К примеру ты все прописал и сделал как тут #linuxfactory, а оно все равно тебя не пускает по ключам.
ㅤ
Тут хочешь не хочешь нужен доступ к логам сервера к которому подключаешься. Так что заранее об этом побеспокойся, прежде чем перезапускать sshd службу.
Если рута нет, загружайся в рекавери и откатывайся по конфигам на сход по паролю. В рекавери я думаю ты знаешь как заходить, да и облачных провайдеров обычно это есть из коробки.
Маунтишь корневой раздел и откатываешь конфиги. Заходишь в конфиги (
Ладно, предположим у тебя есть доступ к руту и ты зашел на сервер.
Запускай команду:
Теперь открывай другой терминал и пробуй подключиться по ключам. После того как ты это сделал, возвращайся в терминал где запускал tail и внимательно смотри что тебе пишут.
В 100% там будет ошибка, которая элементарно гуглится. Обычно это просто проблемы с правами на файл
Но бывают и другие приколы, например ты используешь не тот ключ или вообще без ключа подключаешься.
Распространенные ошибки:
Не ссым читать логи и находить нужное. А как только нашел что-то вменяемое — гуглим или скармливаем GPT (как ты любишь).
tags: #git #devops #ssh #linuxfactory
—
🔔 @bashdays➡️ @gitgate
ㅤ
Тут хочешь не хочешь нужен доступ к логам сервера к которому подключаешься. Так что заранее об этом побеспокойся, прежде чем перезапускать 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
—
Please open Telegram to view this post
VIEW IN TELEGRAM