346 слов
2 минуты

Настройка VPS на примере Ubuntu

Смена оболочки#

Если стандартная оболочка shell, можно поменять её на bash с помощью команды

chsh -s /bin/bash

Пользователь и доступ по SSH#

  1. Создаём нового пользователя
sudo adduser newuser
  1. Даём возможность новому пользователю использовать sudo
sudo usermod -aG sudo newuser
  1. Создаём скрытую директорию .ssh
sudo mkdir /home/newuser/.ssh
  1. Добавляем свой публичный ключ с помощью которого будем получать доступ к серверу без пароля
echo публичный_ключ >> /home/newuser/.ssh/authorized_keys
  1. Выдаём права на директорию .ssh только что созданному пользователю
sudo chown -R newuser:newuser /home/newuser/.ssh
  1. Теперь можно отключиться и подключиться к серверу от имени нового пользователя
exit
ssh newuser@vps_ip
  1. Если в системе остались ненужные пользователи их можно удалить
sudo deluser ubuntu
  1. И удалить его домашний каталог
sudo rm -rf /home/ubuntu

Настройки сервера SSH#

  1. Открываем файл конфига ssh
sudo nano /etc/ssh/sshd_config
  1. В основном конфиге может присутствовать импорт дополнительных параметров из других файлов. При необходимости удаляем строку, чтобы избежать конфликта настроек. Либо можно удалить дополнительные конфиги, которые были созданы провайдером.
Include /etc/ssh/sshd_config.d/*.conf
  1. Запретить подключаться к серверу из под root
PermitRootLogin no
  1. Разрешить подключение с публичным ключом
PubkeyAuthentication yes
WARNING
  1. Этот шаг запретит вход с помощью пароля, проверьте правильность введённого выше ключа
PasswordAuthentication no
  1. Перезапускаем демон ssh
sudo systemctl reload ssh

Docker и Docker Compose#

  1. Удаляем старые версии
sudo apt remove docker docker-engine docker.io containerd runc
  1. Обновляем систему и устанавливаем зависимости
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
  1. Добавляем официальный репозиторий Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  1. Добавляем репозиторий в apt
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$UBUNTU_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  1. Устанавливаем Docker Engine, CLI и Compose plugin
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. Проверяем версию:
docker --version
docker compose version
  1. Добавляем текущего пользователя в группу docker для запуска без sudo
sudo usermod -aG docker $USER
newgrp docker

ZSH#

  1. Установка ZSH
sudo apt install zsh -y
  1. Делаем ZSH оболочкой по умолчанию
chsh -s $(which zsh)

Homebrew#

  1. Установка
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. Добавляем первую строку в настройки zsh
sed -i '1ieval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' ~/.zshrc

Oh My Posh#

  1. Установка
curl -s https://ohmyposh.dev/install.sh | bash -s
  1. Добавляем вторую строку в настройки zsh. Тема оформления
sed -i '2ieval eval "$(oh-my-posh init zsh --config "amro")"' ~/.zshrc

Neofetch#

neofetch

Neofetch это инструмент для получения информации о системе. Я буду использовать его для красивой заставки после подключения по SSH

  1. Установка
sudo apt install neofetch -y
  1. Создаём файл в папке motd
sudo nano /etc/update-motd.d/99-neofetch
  1. Внутри пишем
#!/bin/bash
neofetch
  1. Делаем файл исполняемым
sudo chmod +x /etc/update-motd.d/99-neofetch
Настройка VPS на примере Ubuntu
https://guilliman.ru/posts/vps_setup/
Автор
Guilliman
Опубликовано
2024-09-13
Лицензия
CC BY-NC-SA 4.0