vanoc.ru

Заметки

Архив по тегу ‘ssh’

SSH уведомление об авторизации

Комментариев нет

Решил реализовать уведомление на почту о том, что кто-то авторизовался в ssh. Сперва решение выглядело вот так:

echo -e "Remote connection from\t $SSH_CONNECTION \nLogin $USER" | /bin/mail -s "[SSH] Login on $(hostname)" мояпочта@сайт.ru

Добавляем эту строку в /etc/ssh/sshrc (в случае, если этого файла нет, а его скорее всего не будет, его следует создать)

У этого решения есть существенный недостаток — письма будут отсылаться после любой аутентификации по ssh. Даже если это вы залогинились, письмо все равно вам придет. Дабы не получать массу писем и ввиду того, что я начал изучать python, решил попробовать написать на нем. Получился скрипт сравнивающий с нашего ли ip залогинились, в противном случае шлет email на указанную почту.

#!/usr/bin/env python

import smtplib, os, platform
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText

server = smtplib.SMTP('smtp.сайт.ru', 25)

sender = 'root@'+platform.node()
to = 'мояпочта@сайт.ru'

ip = 'xxx.xxx.xxx.xxx'
sship = os.environ['SSH_CONNECTION']
loginname = os.environ['LOGNAME']

msg = MIMEMultipart()
msg['Subject'] = '[SSH] Login on ' + platform.node()
msg['From'] = sender
msg['To'] = to
text = 'Remote connection from\t' + sship + '\nLogin ' + loginname
msg.attach (MIMEText(text, 'plain'))

textmail = msg.as_string()

if ip in sship:
        print ('hi. Welcome!')
else:
        print ('who is it?')
        server.sendmail(sender, to, textmail)

Сохраняем скрипт в файл, например, noticessh.py и прописываем путь к нему в /etc/ssh/sshrc. К сожалению не со всеми версиями второго питона работает, так же мешает авторизовываться по sftp в случае, если sftp работает через ssh. FileZilla, например, ругается «Оut of memory!» Надо бы допилить, но на данный момент к сожалению знаний по питону не достаточно.

13 ноября 2013 ~ 14:22


Рубрики linux

Метки ,

sshfs

Комментариев нет

На собеседовании встал вопрос монтирования директории удаленного сервера и тут я попал в просак. Ну что ж, исправляемся.

SSHFS (Secure SHell FileSystem) это файловая система для Linux (и других операционных систем, для которых существует реализация FUSE (Filesystem in Userspace), например Mac OS X), используемая для удаленного управления файлами по протоколу SSH (точнее, его расширению SFTP) таким образом, как будто они находятся на локальном компьютере. (Википедия)

Установим sshfs
sudo pacman -S sshfs

Монтирование
sshfs user@remotehost:/path/to/directory /local/path

Отмонтируем
fusermount -u /local/path

4 декабря 2012 ~ 16:33


Рубрики linux

Метки ,

Запуск X приложений на удаленном компе через ssh

17 комментариев

Дабы иметь возможность запускать приложения/сообщения на удаленном компе достаточно подключившись к нему выполнить
export DISPLAY=:0.0
либо дописывать к командам
-display :0.0

1. Чтобы на удаленном компе появилось сообщение, можно воспользоваться утилитой xmessage, правда у нее проблемы с кирилицей
xmessage -center 'Vkljuchi skype'
2. Так же можно воспользоваться wish
echo 'button .b -text "Включи скайп" ; pack .b ' | wish
По дефолту в ubuntu установлен tcl8.4. В принципе для того, чтобы привлечь внимание его хватает. Если вас не устраивают шрифты можно установить tcl8.5.
sudo aptitude install tcl8.5 tk8.5
sudo update-alternatives --config wish
Есть 2 альтернатив, которые предоставляют `wish'.
Выбор Альтернатива
-----------------------------------------------
*+ 1 /usr/bin/wish8.4
2 /usr/bin/wish8.5
Нажмите enter, чтобы сохранить значение по умолчанию[*], или введите выбранное число: 2
Используется `/usr/bin/wish8.5' для предоставления `wish'.

3. Создать текстовик и запустить
echo 'Включи скайп' > file; gedit file
4. Использовать libnotify
sudo aptitude install libnotify-bin
notify-send "Включи скайп, ночной красный гоблин"

Вообще способов привлечь внимание много. Интересно узнать какие знаете Вы?

5 января 2010 ~ 17:47


Рубрики runix,ubuntu

Метки