Wiki

Clone wiki

py2shauth / Home

Простая обёртка к шелу, позволяющая добавить дополнительный способ аутентификации на серверах на базе linux. Временный пароль будет отправлен по средствам sms, используя сервис http://sms.ru/ Будет работать при использовании SSH, su и физическом доступе к консоли сервера. Протестировано пока только под Ubuntu 12.4, python 2.7.

Использование:

cp .py2shauth.conf.yaml /usr/local/etc/.py2shauth.conf.yaml
vim/nano /usr/local/etc/.py2shauth.conf.yaml
mkdir /home/username/.config
cp userconfig.yaml  /home/username/.config/py2shauth.yaml
vim/nano /home/username/.config/py2shauth.yaml
mkdir /usr/share/py2shauth/
cp py2shauth.py /usr/share/py2shauth/py2shauth.py
chmod +x /usr/share/py2shauth/py2shauth.py
usermod -s /usr/share/py2shauth/py2shauth.py username

Требования:

Наличие модуля pyyaml и ipaddr

pip install yaml
pip install ipaddr

Debian/Ubuntu:

apt-get install python-yaml python-ipaddr

CentOS: Сначала надо будет подключить репозиторий rpmforge, потом

yum -y install python-yaml python-ipaddr

Gentoo/Calculate Linux:

emerge dev-python/pyyaml
emerge dev-python/ipaddr

Убедительная просьба!!! Пожалуйста, сообщайте обо всех ошибках!

Внимание! Используйте этот скрипт только на свой страх и риск!!!

Минус этого решения: Отказываемся от sftp/scp.

Возможные проблемы и их решение

В некоторых дистрибутивах при аутентификации происходит провека валидности шела при помощи pam_shells. Например, я замечал в Calculate Scratch Server 13 в файле /etc/pam.d/system-login:

auth            required        pam_shells.so

В таком случае, нужно будет прописать полный путь до py2shauth.py и имя скрипта в файл /etc/shells:

# cat /etc/shells 
# /etc/shells: valid login shells
/bin/bash
/bin/csh
/bin/esh
/bin/fish
/bin/ksh
/bin/sash
/bin/sh
/bin/tcsh
/bin/zsh
/usr/share/py2shauth/py2shauth.py

Updated

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.