Настройка 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 sshDocker и 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 dockerZSH
Установка 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)"' ~/.zshrcOh My Posh
Установка
curl -s https://ohmyposh.dev/install.sh | bash -sДобавляем вторую строку в настройки zsh. Тема оформления
sed -i '2ieval eval "$(oh-my-posh init zsh --config "amro")"' ~/.zshrcNeofetch

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