16.03.2011 19:37
Недавно встал вопрос о том как потушить сервер на QNX из под Solaris, может кому пригодится, поэтому я просто оставлю это здесь.
Для удалённого отключения сервера под управлением ОС QNX необходимо настроить доверительное отношение по протоколу SSH данного сервера к серверу под управлением ОС Solaris. Доверительные отношения позволят удаленно запускать на сервере под управлением ОС QNX выполнение команд с сервера под управлением ОС Solaris под служебной учетной записью без ввода пароля.
В рамках данного решения на сервере QNX должен быть установлен OpenSSH, реализация проходила под управлением ОС QNX 6.4.1 ( но с другими версиями последовательность такая же)
На сервере под управлениeм ОС QNX необходимо выполнить следующее:
1) Создать учётную запись пользователя (например, powermanager) , от имени которого будет происходить отключение сервера.
2) Настроить SSH:
Выполнить скрипт:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#!/bin/sh
KEYGEN=/usr/bin/ssh-keygen
RSA1_KEY=/etc/ssh/ssh_host_key
DSA_KEY=/etc/ssh/ssh_host_dsa_key
RSA_KEY=/etc/ssh/ssh_host_rsa_key
if < ! -s $RSA1_KEY >; then
$KEYGEN -q -t rsa1 -f $RSA1_KEY -C '' -N ''
chmod 600 $RSA1_KEY
chmod 644 $RSA1_KEY.pub
fi
if < ! -s $RSA_KEY >; then
$KEYGEN -q -t rsa -f $RSA_KEY -C '' -N ''
chmod 600 $RSA_KEY
chmod 644 $RSA_KEY.pub
fi
if < ! -s $DSA_KEY >; then
$KEYGEN -q -t dsa -f $DSA_KEY -C '' -N ''
chmod 600 $DSA_KEY
chmod 644 $DSA_KEY.pub
fi
chmod 755 /var/chroot/sshd/
|
Для автоматического запуска sshd при загрузке системы добавить в /etc/rc.d/rc.local:
#!/bin/sh
/usr/sbin/sshd &
В /etc/ssh/sshd_config раскомментировать строки:
#PubkeyAuthentication yes
#AuthorizedKeysFile .ssh/authorized_keys
3) Установить suid бит на /bin/shutdown
От имени пользователя root выполнить:
# chmod u+s /bin/shutdown
На сервере под управлением Solaris необходимо выполнить следующее:
1) Создать служебную учётную запись пользователя (например, powermanager) , от имени которого будет происходить запуск команд.
2) Зарегистрироваться под учетной записью служебного пользователя. И перейти в его домашнюю директорию (например, /export/home/powermanager /).
3) В домашней директории пользователя создать, если не существует, директорию .ssh:
# mkdir /export/home/powermanager/.ssh
4) Cгенерировать пару ключей секретный/открытый с помощью утилиты ssh-keygen, выполнив следующую команду:
# /usr/bin/ssh-keygen -t rsa -b 2048 -f $HOME/.ssh/id_rsa
Примечание – В ответ на приглашение «ввести секретный пароль», вводить пароль не требуется, необходимо нажать «Enter», оставив значение пароля пустым. В случае если секретный пароль будет введен, каждый раз при удаленном подключении по протоколу SSH под учетной записью служебного пользователя помимо пароля ОС, будет дополнительно проверяться секретный пароль.
После выполнения команды в директории $HOME/.ssh/id_rsa появится два файла, id_rsa – секретный ключ, id_rsa.pub – открытый ключ.
5) С сервера под управлением ОС Solaris добавить полученный сгенерированный открытый ключ, в перечень доверенных на сервере под управлением ОС QNX. Для этого необходимо добавить его в файл /home/powermanager/.ssh/authorized_keys пользователя powermanager, выполнив команду:
# cat ~/.ssh/id_dsa.pub | ssh powermanager@qnxhost 'umask 0022 && mkdir -p ~/.ssh && cat - >> ~/.ssh/authorized_keys'
Ввести значение «yes» в случае появления сообщения следующего вида:
The authenticity of host 'xxx.xxx.xxx.xxx (xxx.xxx.xxx.xxx)' can't be established.
DSA key fingerprint is 1a:4b:e0:6f:83:4e:82:c3:9b:83:63:33:c0:f2:29:ce.
Are you sure you want to continue connecting (yes/no)?
В ответ на приглашение ввести пароль ввести пароль учетной записи.
6) Создать в домашнем каталоге пользователя (/export/home/powermanager/) скрипт с именем shutdown-kas.sh следующего содержания:
|
#!/bin/sh
ssh -qn powermanager@qnxhost shutdown -b > /dev/null 2>&1
|
7) Сделать созданный скрипт исполняемым, выполнив следующую команду:
# chmod +x /export/home/powermanager/shutdown-kas.sh