понедельник, 24 марта 2008 г.

Сын, первое проявление интереса

Тут алексеей, проявил первый интерес к клавиатуре, сосредоточенно разглядывал, а потом стал давить на кнопки.


Пока это довольно редкое явление проявления интереса и рукоприкладства к чему либо. :)

суббота, 22 марта 2008 г.

Очередная работа жены

После бессонной ночи в битве за место под солнцем с другими фрилансерами
у неё получился такой логотип/сценка/комикс

пятница, 21 марта 2008 г.

Настройка безпарольной аутентификации с вашим ssh аккаунтом

Если у вас имеется ssh доступ к какому либо серверу и вы не в курсе про ключи, то очевидно вам приходится часто имя и пароль. Это весьма утомительно и мешает автоматизировать многие вещи, например синхронизация заметок Tomboy, налаживание работы синхронизирующего/бекапящего скрипта или запуск X приложение (об этом позже). В общем если вы устали от этой рутины то пора завести ключи :)
Вся задача разбивается на 3 части, генерация ключа, установка его на сервере и настройка рабочей среды

1. генерация ключа
bsdhost% ssh-keygen -t dsa -b 2048
Generating public/private dsa key pair.
Enter file in which to save the key (/home/ffsdmad/.ssh/id_dsa):# соглашаемся с путём по умолчанию
Enter passphrase (empty for no passphrase): # вводим секретное слово
Enter same passphrase again: # вводим секретное слово 2 раз
Your identification has been saved in .
Your public key has been saved in .pub.
The key fingerprint is:
1f:48:47:b2:d1:a1:8a:fd:b4:5f:12:46:93:0a:f4:27 ffsdmad@bsdhost
bsdhost%
теперь в папке $HOME/.ssh/ мы имеет 2 файла-ключа, секретный - id_dsa и открытый - id_dsa.pub

2. добавление ключа на сервер
необходимо добавить содержимое файла $HOME/.ssh/id_dsa.pub с локального компьютера
в файл $HOME/.ssh/authorized_keys удалённого хостинга
bsdhost% ssh ffsdmad@ffserver
scp ffsdmad@bsdhost:~/.ssh/id_dsa.pub ~/tmp.id
Password:
id_dsa.pub 100% 1117 1.1KB/s 00:00
ffserver:~>
ffserver:~> cat ~/tmp.id >> .ssh/authorized_keys
ffserver:~> rm ~/tmp.id
ffserver:~> exit
Всё, теперь сервер должен узнавать нас не только по паролю, но и ключам, проверям:
bsdhost% ssh ffserver
Enter passphrase for key '/home/ffsdmad/.ssh/id_dsa': # здесь требуется ввести ключевое слово, заданное при создании ключа
ffserver:~>

3. настройка среды для удобного использования
Мы получили безпарольную систему входа на сервер удалённого хостинга.
Но хрен редьки не слаше, ведь нам приходится вводить ключевое слово,
чтобы избежать этого необходимо проделать следующее:
а. поправить конфиг пользователя (для Ubuntu не требуется)
б. пере/залогиниться по новой (для Ubuntu не требуется)
в. добавить ключь агенту авторизации

а. добавляем в файл ~/.tcshrc следующий текст:

if ( $?SSH_AGENT_PID == 0 && $?SSH_AUTH_SOCK == 0 )then
eval `ssh-agent -c`# для tcsh -c, для bash -s
else
# тут можно прибивать агента при каждом входе пользователя в терминал
# echo "kill current ssh-agent"
# ssh-agent -k
# echo "start ssh-agent"
# eval `ssh-agent -c`
endif
этот код будет проверять запушен ли агент авторизации, если нет, то будет запускать и настраивать среду
б. exit
в. bsdhost:~> ssh-add
Enter passphrase for /home/ffsdmad/.ssh/id_dsa:
Identity added: /home/ffsdmad/.ssh/id_dsa (/home/ffsdmad/.ssh/id_dsa)
bsdhost:~>
проверяем кривость рук
bsdhost:~> ssh ffserver
Welcome to FreeBSD!
запускается ssh-agent
Agent pid 13178
ffserver:~>

Всё, мы имеем безпарольный вход на удалённый хостинг. Теперь до следующего входа в систему нет нужды вводить пароль и возможности вашего компьютера увеличились за счёт возможностей сервера, но об этом после :)

Настройка tomboy для синхронизации через webdav

Заметки Tomboy - это утилита позволяющая создавать заметки
Таких программ очень много, но мне нравится одна из фишек Tomboy - синхронизация.
Что это такое? Например, дома я договорился с партнёром о чём то, он/она мне дал/а телефон/пароль/ссылку/etc я в 2 клика добавил заметку и закрыл, когда эти данные нужны, я нашёл/открыл/воспользовался нужными данными.
Но у меня не один компьютер и не два, и мне везде нужны эти заметки, вот тут приходит на помощь синхронизация: смысл которой похож на механизм CVS, сохранить на удалённом сервере ваши заметки, или наоборот обновить. То-есть после после операции синхронизация, ваши заметки будут всегда актуальными. Там имеет несколько способов синхронизации:
  1. с локальным всё понятно!?
  2. для ssh необходимо установить модуль fuse ssh и иметь удалённый сервер с ssh доступом, чтобы не вводить постоянно пароль я рекомендую пользоваться ключами (об этом читать тут)
  3. так же возможность использования WebDav источника, это очень распространённая услуга у многих провайдеров, ведь у вас ведь есть свой хостинг? :)

в общем подключаем Webdav каталог к Tomboy Ubuntu 7.10
первым делом необходимо (собрать) установить пакет
wdfs_* .deb ( wdfs_1.4.2-1_i386.deb )
Если пакета нет, то либо качаем от сюда http://rekoweb.ru/download/wdfs_1.4.2-1_i386.deb
либо собираем сами, вот так
sudo apt-get install checkinstall libfuse-dev libneon26 libneon26-dev libglib2.0-dev

wget http://noedler.de/projekte/wdfs/wdfs-1.4.2.tar.gz
tar xzf wdfs-1.4.2.tar.gz
cd wdfs-1.4.2
./configure
sudo checkinstall
sudo dpkg -i wdfs_1.4.2-1_i386.deb

далее, активируем расширение, синхронизации через webdav, в его настройки необходимо внести
полный URL до того места где будут размещаться заметки
например у меня http://ffserver.domen/dav/notes/ffsdmad/ и логин и пароль на webdav сервере (уточните у вашего провайдера аккаунт к webdav каталогу)
сохраняем и если с сервером всё в порядке, то спокойно можно синхронизироваться

Если вы сам себе провайдер, то необходимо обеспечить создание webdav каталога
Настройка собственного webdav сервера
нужно обеспечить загрузку webdav модуля индейца:

grep dav /usr/local/etc/apache22/httpd.conf
LoadModule dav_module libexec/apache22/mod_dav.so
LoadModule dav_fs_module libexec/apache22/mod_dav_fs.so
Include etc/apache22/extra/httpd-dav.conf

grep -v "^$" /usr/local/etc/apache22/extra/httpd-dav.conf |grep -v "^#"
DavLockDB "/root/DavLock"
Alias /dav "/bacup/dav"

Dav On
Order Allow,Deny
Allow from all
AuthType Digest
AuthName DAV-upload
# You can use the htdigest program to create the password database:
# htdigest -c "/root/user.passwd" DAV-upload admin
AuthUserFile "/root/user.passwd"
# Allow universal read-access, but writes are restricted
# to the admin user.

require user admin


#BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
#BrowserMatch "MS FrontPage" redirect-carefully
#BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
#BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully

затем обеспечить право записи пользователя apache на папку /bacup/dav
именно здесь будет хранилище
в результате /dav будет видно на любом виртуальном домене, чтобы добавить настроек можно использовать обычный .htaccess, например:
cat /bacup/dav/.htaccess
AddDefaultCharset UTF-8 # умолчальный чарсет UTF-8