FastStart
September 1, 2019

Debian Сервер + Python

Обновление/Установка первичных пакетов

Подключаемся по SSH к серверу debian. Обновляем и устанавливаем некоторые пакеты.

$ sudo apt-get update
$ sudo apt-get install -y vim mosh tmux htop git curl wget unzip zip gcc build-essential make

Добавляем ключи

Сначала необходимо создать ключи ssh для аутентификации на локальном сервере. Для этого существует специальная утилита ssh-keygen, которая входит в набор утилит OpenSSH. По умолчанию она создает пару 2048 битных RSA ключей.

$ ssh-keygen

По умолчанию ключи располагаются в папке ~/.ssh/. Секретный ключ будет называться id_rsa, а публичный id_rsa.pub.

Ограничиваем доступ.

$ chmod 700  ~/.ssh/id_rsa

Самый простой способ скопировать ключ на удаленный сервер - это использовать утилиту ssh-copy-id. Она тоже входит в пакет программ OpenSSH.

$ ssh-copy-id UserName@RemoteHost

Скопировать ключ по ssh вручную.

$ cat ~/.ssh/id_rsa.pub | ssh UserName@RemoteHost "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Настройка SSH

$ sudo vim /etc/ssh/sshd_config

ВНИМАНИЕ!

Если будет использоваться rsa-ключ, то для увеличения безопасности системы лучше пароль отключить. Убедитесь, что ключ надежно сохранен и вы его не потеряете, потому что, если вы включите PasswordAuthentication по паролю вы больше не войдете.

Опции:

AllowUsers UserName - дает доступ пользователю UserName по SSH
PermitRootLogin no - запрет подключения для root
PasswordAuthentication no - запрет подключения SSH по паролю

Перезапускаем SSH и меняем пароль для UserName

$ sudo service ssh restart
$ sudo passwd UserName

Настройка locale

$ sudo localedef ru_RU.UTF8 -i ru_RU -f UTF-8
$ export  LANGUAGE=ru_RU.UTF-8 
$ export LANG=ru_RU.UTF-8
$ export LC_ALL=ru_RU.UTF-8 
$ sudo locale-gen ru_RU.UTF-8 
$ sudo dpkg-reconfigure locales

Нужные пакеты

$ sudo apt-get install -y tree redis-server nginx libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-dev python-imaging python3-lxml libxslt-dev python-libxml2 python-libxslt1 libffi-dev libssl-dev python-dev gnumeric libsqlite3-dev libpq-dev libxml2-dev libxslt1-dev libjpeg-dev libfreetype6-dev libcurl4-openssl-dev supervisor

Установка python 3.7

Создадим папку для хранения сборок

$ mkdir ~/code

Скачиваем и собираем

$ wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
$ tar xvf Python-3.7.*
$ cd Python-3.7.3
$ mkdir ~/.python
$ ./configure --enable-optimizations --prefix=/home/UserName/.python
$ make -j8
$ sudo make altinstall

Удаляем не нужные файлы и папки после сборки

$ sudo rm -rf Python-3.7.3.tgz Python-3.7.3

Обновляем pip

$ sudo /home/UserName/.python/bin/python3.7 -m pip install -U pip