RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> Может кому будет интересно про доступ к репозиторию > CVS на UNIX-хосте через SSH из-под OS/2. Так это сюда. > > Имеем в сети UNIX-хост, на котором по тем или иным > соображениям мы решили держать все что нам очень дорого и > находится в непрерывном развитии. > > 1. Первое, что требуется -- локальное наличие и нормальное > функционирование gnu-шных программ для os/2. Все это берется > на hobbes'е. > > 2. Второе -- на удаленном хосте должны работать CVS и SSH, > а мы -- иметь обычный пользовательский аккаунт. Считаем, что > это имеет место и мы имеем домашний каталог $HOME, USERID и > PASSWORD на хосте HOST. > > 4. Если не установлен локально, устанавливаем ssh (берем openssh > на hobbes.nmsu.edu), устанавливаем и настраиваем: > > -- запускаем ssh-keygen и на все его вопросы давим <Enter>. > Он создаст в каталоге $HOME подкаталог .ssh/ и запишет туда > два файла: > $HOME/.ssh/identity -- файл с секретным ключом > $HOME/.ssh/identity.pub -- файл с открытым ключом > -- копируем identity.pub на удаленный сервер > > scp $HOME/.ssh/identity.pub USERID@HOST:. > при этом в $HOME на удаленном хосте появится файл identity.pub > -- заходим на удаленный хост по ssh > > ssh -l USERID HOST > нас спросят пароль, мы ответим PASSWORD и попадем в свой $HOME, > где лежит наш identity.pub. Теперь мы создаем подкаталог .ssh/ > $ mkdir ~/.ssh > $ chmod 700 ~/.ssh > и копируем содержимое identity.pub в ~/.ssh/authorized_keys > $ cat identity.pub > .ssh/authorized_keys > $ chmod 600 ~/.ssh/* > Теперь мы можем коннектиться по ssh не набирая паролей > > ssh -l USERID HOST > Если лень набирать -l USERID, заводим локально файл > $HOME/.ssh/config и прописываем в нем две строки > host=HOST > user=USERID > ssh будет автоматом добавлять -l USERID для хоста HOST. Таких пар в > $HOME/.ssh/config может быть несколько (man ssh). > -- проверяем, как все это работает > > ssh HOST 'echo $PATH' > нам должны ответить типа > /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin > или что-то похожее, как у кого заведено. На строку > > ssh HOST 'which cvs' > нам должны ответить типа > /usr/local/bin/cvs > Если ничего не ответит -- там cvs не установлен. > > 5. Теперь настраиваем локально работу CVS. > -- Устанавливаем среду. Надо установить CVSROOT, CVS_RSH и LOGNAME. > Это можно сделать глобально в config.sys или в $HOME/.bashrc. > CVSROOT - указывает на расположение репозитория и метод доступа к нему. > LOGNAME - транслируется в USERID > CVS_RSH - указывает на программу, которая вызывается вместо rsh при > запуске cvs. Запускаться должен ssh.exe, однако есть проблема в том, > что в OS/2 cvs вызывает CVS_RSH так: > cvs: $CVS_RSH HOST -b -l USERID cvs server > что не в синтаксисе ssh и простой подстановкой ssh.exe не обойтись. > Чтобы побороть это надо написать скрипт ssh-wrapper в одну строку и > поместить его рядом с ssh.exe. У меня он выглядит так > --- ssh-wrapper ------------ > #!sh > d:/usr/bin/ssh.exe $1 cvs server > exit > --- ssh-wrapper ------------ > В .bashrc я поместил строки: > > export CVS_RSH="d:/usr/bin/ssh-wrapper" > export CVSROOT=":ext:USERID@HOST:/home/USERID/cvsfiles" > export HOME="d:/home" # у меня в config.sys HOME=d:\home > export LOGNAME="USERID" > > Теперь заходим на HOST > > ssh HOST > Создаем там каталог по репозиторий > $ mkdir cvsfiles > Теперь с локальной машины мы можем работать с этим репозиторием как обычно. > > > cvs init > > cvs import -m "" import_dir first second > > cvs co import_dir > ... > > Вот и все. > > Прошу прощения за навязчивость и нестройность изложения. > > > набираем
__, _,_ __, _,_ _,
|_) | | | \ | / /_\
| \ | | |_/ |/ | |
~ ~ `~' ~ ~ ~ ~
Programmed by
Dmitri Maximovich
,
Dmitry I. Platonoff
,
Eugen Kuleshov
.
25.09.99 (c) 1999,
RU/2
. All rights reserved.
Rewritten by
Dmitry Ban
. All rights ignored.