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

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

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

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

chsh -s /bin/bash

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

Создаём нового пользователя

sudo adduser newuser

Даём возможность новому пользователю использовать sudo

sudo usermod -aG sudo newuser

Создаём скрытую директорию .ssh

sudo mkdir /home/newuser/.ssh

Если при создании сервера вы указали свой публичный ключ для доступа без пароля, то копируем его новому пользователю

sudo cp ~/.ssh/authorized_keys /home/newuser/.ssh/authorized_keys

Если нужно добавить публичный ключ из терминала

echo публичный_ключ >> /home/newuser/.ssh/authorized_keys

Выдаём права на директорию .ssh только что созданному пользователю

sudo chown -R newuser:newuser /home/newuser/.ssh

Теперь можно отключиться и подключиться к серверу от имени нового пользователя

exit
ssh newuser@vps_ip

Если в системе остались ненужные пользователи их можно удалить

sudo deluser ubuntu

И удалить его домашний каталог

sudo rm -rf /home/ubuntu

Настройки сервера SSH Открываем файл конфига ssh

sudo nano /etc/ssh/sshd_config

В основном конфиге может присутствовать импорт дополнительных параметров из других файлов. При необходимости удаляем строку, чтобы избежать конфликта настроек. Либо можно удалить дополнительные конфиги, которые были созданы провайдером.

Include /etc/ssh/sshd_config.d/*.conf

Запретить подключаться под root

PermitRootLogin no

Запретить входить с паролем

PasswordAuthentication no

Разрешить подключение с публичным ключом

PubkeyAuthentication yes
ChallengeResponseAuthentication no

Перезапускаем демон ssh

sudo systemctl reload ssh

Docker и Docker Compose#

Удаляем старые версии

sudo apt remove docker docker-engine docker.io containerd runc

Обновляем систему и устанавливаем зависимости

sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release

Добавляем официальный репозиторий 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

Добавляем репозиторий в 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

Устанавливаем 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

Проверяем версию:

docker --version
docker compose version

Добавляем текущего пользователя в группу docker для запуска без sudo

sudo usermod -aG docker $USER
newgrp docker

ZSH#

Установка ZSH

sudo apt install zsh -y

Делаем ZSH оболочкой по умолчанию

chsh -s $(which zsh)

Homebrew#

Установка

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Добавляем первую строку в настройки zsh

sed -i '1ieval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' ~/.zshrc

Oh My Posh#

Установка

curl -s https://ohmyposh.dev/install.sh | bash -s

Добавляем вторую строку в настройки zsh. Тема оформления

sed -i '2ieval eval "$(oh-my-posh init zsh --config "amro")"' ~/.zshrc

Neofetch#

neofetch

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

Установка

sudo apt install neofetch -y

Создаём файл в папке motd

sudo nano /etc/update-motd.d/99-neofetch

Внутри пишем

#!/bin/bash
neofetch

Делаем файл исполняемым

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