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