Gitlab – add SSH key

Щоб кожен раз при завантаженні проектів на сервер gitlab не вводити пароль, потрібно добавити SSH ключ.

Для цього на вашому комп’ютері згенеруйте пару відкритого і закритого ключа командою:

ssh-keygen -t rsa -f ~/.ssh/gitlab

Вводити пароль на сертифікат чи ні, вирішуйте самі. Все залежить від ситуації і вашої параноїдальності. Якщо вкажете пароля, його потрібно буде вводити кожен раз, коли будете використовувати ключ для авторизації.

Якщо у вас це єдиний ключ в директорії .ssh, то більше нічого робити не треба. У разі, якщо у вас їх декілька, то треба створити конфігураційний файл і вказати, для якого ресурсу який ключ використовувати. Для цього створюємо файл ~ / .ssh / config приблизно такого змісту:

Host git.example.host
    IdentityFile /home/user/.ssh/gitlab
    port 22

Порт 22 вказувати не обов’язково. Я його вказав для прикладу, щоб в разі використання нестандартного порту, ви його там вказали.

Тепер копіюємо вміст файлу ~/.ssh/gitlab.pub і йдемо в web інтерфейс gitlab. Відкриваємо розділ Setting->SSH Keys і вставляємо в поле key наш ключ.

Щоб завантажити проект на сервер gitlab, відкрийте папку з проектом на вашому комп’ютері та виконайте команди:

git init
git add .
git commit -m "Initial commit"
git remote add project [email protected]:root/project.git
git push

Не забудьте поміняти [email protected] на адрес вашого сервера, розташування та назву проекта root/project.git, на вашому сервері.

Linux Grub change default boot operating system

Якщо на комп’ютері встановлено декілька операційних систем, по замовчуванню завантажувач Grub завантажує першу операційну систему в списку.

Щоб змінити порядок завантаження операційних систем відкрийте файл

/etc/default/grub

Знайдіть рядок

GRUB_DEFAULT=0

Та змініть цифру 0 на номер операційної системи у вашому списку. (Нумерація рядків починається з 0)

Збережіть зміни в файлі та обновіть налаштування Grub

sudo update-grub

Gitlab Nginx add new domain

Щоб добавити додаткові домени на сервер Nginx, на якому працює Gitlab, потрібно відредагувати файл:

nano /etc/gitlab/gitlab.rb

і перейдіть до рядка nginx[‘custom_nginx_config’] та змініть його, як показано нижче, переконайтесь, що рядок не закоментований:

nginx['custom_nginx_config'] = "include /etc/nginx/conf.d/*.conf;"

Створіть новий каталог для конфігураційних файлів Nginx:

mkdir -p /etc/nginx/conf.d/
nano /etc/nginx/conf.d/example.site.conf

Відредагуйте файл example.site.conf

server {
    listen *:80;
    server_name example.site www.example.site;

    return https://$host$request_uri;
}

server {
    listen *:443;
    server_name  example.site www.example.site;

    ssl on;
    ssl_certificate  /etc/letsencrypt/live/example.site/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/example.site/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
    }
}

Встановіть Letsencrypt (якщо ще не встановлений) та додайте сертифікат Letsencrypt для нового домену

sudo apt-get install letsencrypt -y
sudo letsencrypt certonly --standalone --agree-tos --no-eff-email --agree-tos --email [email protected] -d example.site

Linux – підключення до SSH за допомогою ключа

SSH або захищена оболонка – це зашифрований протокол, який використовується для адміністрування та спілкування з серверами. Під час роботи з сервером Ubuntu, швидше за все, ви витратите більшу частину часу на термінальний сеанс, підключений до вашого сервера через SSH.

У цьому посібнику ми зупинимось на налаштуванні SSH-ключів для установки на Ubuntu 18.04. SSH-ключі забезпечують простий, безпечний спосіб входу на ваш сервер і рекомендуються для всіх користувачів.

Крок 1 – Створіть ключову пару RSA

Першим кроком є створення пари ключів на клієнтській машині (зазвичай на вашому комп’ютері):

ssh-keygen -b 4096

За замовчуванням ssh-keygen створить 2048-бітну пару ключів RSA, що є достатньо безпечним для більшості випадків використання (ви можете додатково передати параметр
-b 4096 для створення більшого 4096-бітного ключа).

Після введення команди ви побачите повідомлення:

Output
Generating public/private rsa key pair.
Enter file in which to save the key (/your_home/.ssh/id_rsa):

Натисніть клавішу Enter, щоб зберегти пару ключів у .ssh / підкаталозі у вашому домашньому каталозі або вкажіть альтернативний шлях.

Якщо ви раніше генерували пару ключів SSH, ви можете побачити наступне запит:

Output
/home/your_home/.ssh/id_rsa already exists.
Overwrite (y/n)?

Якщо ви вирішите перезаписати ключ на диску, ви більше не зможете авторизуватися за допомогою попереднього ключа. Будьте дуже обережні, вибираючи так, оскільки це руйнівний процес, який неможливо відмінити.

Потім програма запропонує створити пароль для SSH ключа:

Output
Enter passphrase (empty for no passphrase):

Введення пароля не обов’язкове, але дуже рекомендується. Пароль додає додатковий рівень безпеки. Навіть якщо зловмисник заволодіє вашим ключем, він не зможе ним скористатися без пароля.

Потім ви побачите такий вихід:

Output
Your identification has been saved in /your_home/.ssh/id_rsa.
Your public key has been saved in /your_home/.ssh/id_rsa.pub.
The key fingerprint is:
a9:49:2e:2a:5e:33:3e:a9:de:4e:77:11:58:b6:90:26 username@remote_host
The key's randomart image is:
+--[ RSA 2048]----+
|     ..o         |
|   E o= .        |
|    o. o         |
|        ..       |
|      ..S        |
|     o o.        |
|   =o.+.         |
|. =++..          |
|o=++.            |
+-----------------+

Тепер у вас є відкритий та приватний ключ, який ви можете використовувати для автентифікації. Наступним кроком є розміщення відкритого ключа на вашому сервері, щоб ви могли використовувати автентифікацію на основі SSH-ключа для входу.

Крок 2 – Скопіюйте відкритий ключ на сервер Ubuntu

Найшвидший спосіб скопіювати ваш відкритий ключ на хост Ubuntu – це використовувати утиліту під назвою ssh-copy-id.

Копіювання відкритого ключа за допомогою ssh-copy-id

Інструмент ssh-copy-id включений за замовчуванням у багатьох операційних системах, тому він може бути доступний у вашій локальній системі. Щоб цей метод працював, ви вже повинні мати доступ до SSH на основі пароля до свого сервера.

Щоб скористатися утилітою, вам просто потрібно вказати віддалений хост, до якого ви хочете підключитися, та обліковий запис користувача, до якого ви маєте пароль SSH. Це обліковий запис, в який буде скопійовано ваш відкритий ключ SSH.

Синтаксис:

sh-copy-id -i ~/.ssh/mykey username@remote_host

Якщо на вашому сервері запущений SSH на не стандартному порті, ви можете вказати порт, до якого підключатися:

sh-copy-id -p 1234 username@remote_host

Щоб використовувати декілька ключів для різних серверів, в папці .ssh створіть файл config з таким вмістом:

Host server1
    IdentityFile ~/.ssh/private-key-1
    port 22

Host Server2
    IdentityFile ~/.ssh/private-key-2
    port 22

Щоб використовувати ключі в операційній системі Windows за допомогою програми Putty – їх потрібно сконвертувати в формат .ppk за допомогою програми puttygen.exe. (Скачати програми Putty та Puttygen можна на офіційному сайті: https://www.putty.org/)

Згенерований .ppk ключ потрібно вказати в налаштуваннях SSH підключення в програмі Putty:

Крок 3 – відключення доступу на сервер за допомогою пароля

Після налаштування доступу на сервер за допомогою SSH ключа для підвищення безпеки сервера потрібно відключити стандартний доступ за допомогою пароля. Це дозволить захистити сервер від підбору пароля зловмисниками.

Для цього потрібно відредагувати файл: /etc/ssh/sshd_config:

PasswordAuthentication no
PermitRootLogin no

Після цього перезевантажте сервер SSH:

sudo service ssh restart

Щоб дозволити доступ по SSH з використання паролю для деяких ІР адресів, в кінці конфігураційного файла пропишіть наступні параметри:

Match Address 192.168.1.0/24,XXX.XXX.XXX.XXX
      PasswordAuthentication yes

Замість 192.168.1.0/24,XXX.XXX.XXX.XXX підставте через кому Ваші ІР адреси

Install Yarn – Ubuntu 18.04

Спочатку імпортуйте ключ GPG репозиторію Yarn, використовуючи наступну команду, щоб включити репозиторій Yarn, використовуючи наступну команду curl:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -

Після імпортування ключа додайте репозиторій APT з використанням наступної команди:

echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

Оновіть індекс менеджера пакетів APT

sudo apt update

та встановіть Yarn за допомогою наступних команд. Наступна команда також встановить Node.js під час встановлення Yarn.

sudo apt install yarn

Якщо ви не хочете встановлювати Node.js автоматично за допомогою Yarn, скористайтеся наступною командою:

sudo apt install --no-install-recommends yarn

Тепер перевірте встановлення та версію Yarn, використовуючи наступну команду:

yarn --version
1.17.3

Install NodeJS – Ubuntu 18.04

NodeSource – це компанія, орієнтована на забезпечення підтримки Node корпоративного рівня, і вони підтримують сховище, що містить останні версії Node.js.

Щоб встановити Node.js і npm з сховища NodeSource, виконайте такі дії:

1. Увімкніть сховище NodeSource наступною командою curl:

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -

Наведена вище команда додасть ключ підпису NodeSource до вашої системи, створить файл сховища apt source, встановить всі необхідні пакети та оновить кеш apt.

Поточна версія LTS Node.js є версією 10.x, Carbon. Якщо вам потрібно встановити версію 8.x, просто замініть setup_10.x на setup_8.x

2. Після додавання репозиторію NodeSource встановіть Node.js і npm, командою:

sudo apt install nodejs

3. Переконайтеся, що Node.js та npm успішно встановлені, надрукувавши їх версії

node --version
v10.16.0

npm --version
6.9.0

Linux – find changed files

При адмініструванні Linux дуже важливо знайти файли, які недавно мінялися в системі. Це допоможе виявити підозрілу активність та запобігти взлому вашої системи.

Щоб знайти всі файли, які мінялися протягом останніх 7 днів в каталозі /home використовується команда:

find /home -mtime -7 -ls