ssh-keygen -t rsa -b 2048 -C "Comment - VDS Name" -f ~/.ssh/filename

Сгенерируются два файла с ключами: filename (приватный ключ) и filename.pub (публичный ключ).

ssh -i filename root@123.45.67.8
adduser username
# Add `username` to `sudo` group
usermod -aG sudo username
# Switch to `username`
su - username

Добавим ключ ssh новому пользователю. Для этого, заходим под его именем по ssh на сервер, и далее:

cd ~
mkdir -p .ssh
# 700 - all rights for current user, none for others.
chmod 700 .ssh
 
echo "<PUBLIC_KEY>" >> ~/.ssh/authorized_keys

Можно отключить возможность входа по ssh по логину и паролю, оставив только вход по ключу. Для этого, на сервере нужно открыть файл конфигурации ssh:

sudo nano /etc/ssh/sshd_config

Стрелкой вниз домотайте до строки с PasswordAuthentication и вместо yes напишите no:

После этого перечитайте конфигурацию сервера sshd (сервер ssh daemon):

sudo systemctl reload sshd.service

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

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

ssh -i ~/.ssh/keyname user@123.45.67.8

Чтобы больше не указывать имя ключа при подключении, необходимо сделать следующее:

  1. Создайте в папке ~/.ssh файл с именем config:
touch ~/.ssh/config && chmod 600 ~/.ssh/config  
  1. Скопируйте приватный и публичный ключи в папку ~/.ssh/:
chmod 600 ~/.ssh/timeweb*
cp -fv timeweb timeweb.pub ~/.ssh/
  1. Отредактируйте файл ~/.ssh/config, написав следующие строки:
Host <ip_address_of_your_machine>  
User <your_remote_system_user_name>  
IdentityFile ~/.ssh/timeweb
  1. Подключитесь по ssh без указания имени ключа:
ssh <your_remote_system_user_name>@<ip_address_of_your_machine>
python3 -V
sudo apt install python3-virtualenv
mkdir ~/workspace
cd ~/workspace
python3 -m virtualenv -p python3 .venv
source .venv/bin/activate
# or `. .venv/bin/activate`
pip install flask

Всё, что запускается на localhost (127.0.0.1) доступно только изнутри машины. Поэтому приложение Flask нужно запускать с указанием IP адреса VDS (если не указывать порт, по умолчанию запустится на 80):

flask run -h 123.45.67.8
# or
gunicorn --bind 0.0.0.0:5000 app:app --daemon

https://www.howtogeek.com/225487/what-is-the-difference-between-127.0.0.1-and-0.0.0.0/

Шпаргалка по rsync

  • Синхронизация каталогов dir1 и dir2 на одной машине: rsync -a dir1 dir2
  • Синхронизация удалённой системы: rsync -a local_dir username@remote_host:remote_dir
  • В обратную сторону: rsync -a username@remote_host:remote_dir local_dir
  • Использование с ключом: rsync -e 'ssh -i timeweb' -Paz username@remote_host:remote_dir local_dir

Опции:

−r — рекурсивная синхронизация.
−a — режим архива, эквивалент -rlptgoD.
−z — сжатие данных.
−P — показать прогресс синхронизации.
−e — используется для задания параметров при подключении через SSH.

Полный список опций можно найти в документации.

Docker Setup

Docker Setup on Ubuntu

sudo apt update
 
sudo apt install apt-transport-https ca-certificates curl software-properties-common
 
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
 
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
 
sudo apt update
 
apt-cache policy docker-ce
 
sudo apt install docker-ce
 
sudo systemctl status docker

https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-compose-on-ubuntu-22-04


📂 DevOps | Последнее изменение: 06.12.2023 14:45

Link to original


📂 DevOps | Последнее изменение: 06.12.2023 14:45