Не интерактивные SSH аутентификации по паролю – sshpass

Posted by

Заинтересовала меня возможность подключении к серверам через безопасное соединение без ввода пароля. Можно конечно на основе авторизированных ключей, но как быть если нужно завести пользователей, просмотреть список уже присутствующих, удалить на (Integrated Lights-Out).

Исходная система:

Ubuntu Desktop 10.10 x86

Сервер с iLo 2.

Проверяем наличие пакета в репозитариях:

ekzorchik@ekv:~$ aptitude search sshpass

p   sshpass   — Non-interactive ssh password authentication

ekzorchik@ekv:~$

Устанавливаем пакет:

ekzorchik@ekv:~$ sudo aptitude install sshpass

Смотрим версию пакета:

ekzorchik@ekv:~$ sshpassV

sshpass 1.04

Подключимся к ilo с указанием пароля в командной строке:

, что есть iLo:

  • Графический веб-интерфейс (GUI) — доступ к iLO из любого места через стандартный браузер.
  • Virtual Power — полное удаленное управление питанием сервера.
  • Remote text console — платформо-независимая текстовая консоль для отображения и управления активностью удаленного сервера, например, выключение или включение.
  • Virtual Serial Port — доступ к последовательному порту через сеть таких приложений как Windows® Server 2003 Emergency Management Services и сессии TTY.
  • Интерфейс командной строки и сценариев — гибкое использование, конфигурация и обслуживание.
  • SSL шифрование — для всех данных между процессором iLO и браузером.
  • Диагностика процессора iLO и сервера — детализированные отчеты, статус.
  • DNS/DHCP.
  • Удаленное обновление микропрограммы.
  • IPMI через локальную сеть.

 

ekzorchik@ekv:~$ sshpass -p ‘<пароль>’ ssh Administrator@<ip_address_iLo_server>

Ошибка:

shell request failed on channel 0

Поправим конфигурационный файл:

ekzorchik@ekv:~$ sudo nano /etc/ssh/sshd_config

Поправить SyslogFacility AUTH на SyslogFacility AUTHPRIV

Подключаемся к ilo серверу с указанием расширенного лога подключения:

ekzorchik@ekv:~$ sshpass -p ‘пароль’ ssh -vv Administrator@<ip_address_iLo_server>

OpenSSH_5.5p1 Debian-4ubuntu6, OpenSSL 0.9.8o 01 Jun 2010

debug1: Reading configuration data /etc/ssh/ssh_config

debug1: Applying options for *

debug2: ssh_connect: needpriv 0

debug1: Connecting to <ip_address_iLo_server> [<ip_address_iLo_server>] port 22.

debug1: Connection established.

debug1: identity file /home/ekzorchik/.ssh/id_rsa type -1

debug1: identity file /home/ekzorchik/.ssh/id_rsa-cert type -1

debug1: identity file /home/ekzorchik/.ssh/id_dsa type -1

debug1: identity file /home/ekzorchik/.ssh/id_dsa-cert type -1

debug1: Remote protocol version 2.0, remote software version mpSSH_0.0.1

debug1: no match: mpSSH_0.0.1

debug1: Enabling compatibility mode for protocol 2.0

debug1: Local version string SSH-2.0-OpenSSH_5.5p1 Debian-4ubuntu6

debug2: fd 3 setting O_NONBLOCK

debug1: SSH2_MSG_KEXINIT sent

debug1: SSH2_MSG_KEXINIT received

debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1

debug2: kex_parse_kexinit: ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,ssh-rsa,ssh-dss

debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se

debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se

debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96

debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96

debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib

debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib

debug2: kex_parse_kexinit:

debug2: kex_parse_kexinit:

debug2: kex_parse_kexinit: first_kex_follows 0

debug2: kex_parse_kexinit: reserved 0

debug2: kex_parse_kexinit: diffie-hellman-group1-sha1

debug2: kex_parse_kexinit: ssh-dss,ssh-rsa

debug2: kex_parse_kexinit: 3des-cbc,aes128-cbc

debug2: kex_parse_kexinit: 3des-cbc,aes128-cbc

debug2: kex_parse_kexinit: hmac-md5,hmac-sha1

debug2: kex_parse_kexinit: hmac-md5,hmac-sha1

debug2: kex_parse_kexinit: none

debug2: kex_parse_kexinit: none

debug2: kex_parse_kexinit:

debug2: kex_parse_kexinit:

debug2: kex_parse_kexinit: first_kex_follows 0

debug2: kex_parse_kexinit: reserved 0

debug2: mac_setup: found hmac-md5

debug1: kex: server->client aes128-cbc hmac-md5 none

debug2: mac_setup: found hmac-md5

debug1: kex: client->server aes128-cbc hmac-md5 none

debug2: dh_gen_key: priv key bits set: 110/256

debug2: bits set: 534/1024

debug1: sending SSH2_MSG_KEXDH_INIT

debug1: expecting SSH2_MSG_KEXDH_REPLY

debug1: Host ‘<ip_address_iLo_server>‘ is known and matches the RSA host key.

debug1: Found key in /home/ekzorchik/.ssh/known_hosts:1

debug2: bits set: 515/1024

debug1: ssh_rsa_verify: signature correct

debug2: kex_derive_keys

debug2: set_newkeys: mode 1

debug1: SSH2_MSG_NEWKEYS sent

debug1: expecting SSH2_MSG_NEWKEYS

debug2: set_newkeys: mode 0

debug1: SSH2_MSG_NEWKEYS received

debug1: Roaming not allowed by server

debug1: SSH2_MSG_SERVICE_REQUEST sent

debug2: service_accept: ssh-userauth

debug1: SSH2_MSG_SERVICE_ACCEPT received

debug2: key: /home/ekzorchik/.ssh/id_rsa ((nil))

debug2: key: /home/ekzorchik/.ssh/id_dsa ((nil))

debug1: Authentications that can continue: password,publickey

debug1: Next authentication method: publickey

debug1: Trying private key: /home/ekzorchik/.ssh/id_rsa

debug1: Trying private key: /home/ekzorchik/.ssh/id_dsa

debug2: we did not send a packet, disable method

debug1: Next authentication method: password

debug2: we sent a password packet, wait for reply

debug1: Authentication succeeded (password).

debug1: channel 0: new [client-session]

debug2: channel 0: send open

debug1: Entering interactive session.

debug2: callback start

debug2: client_session2_setup: id 0

debug2: channel 0: request pty-req confirm 1

debug1: Sending environment.

debug1: Sending env LANG = ru_RU.UTF-8

debug2: channel 0: request env confirm 0

debug2: channel 0: request shell confirm 1

debug2: fd 3 setting TCP_NODELAY

debug2: callback done

debug2: channel 0: open confirm rwindow 1048576 rmax 2048

debug2: channel_input_status_confirm: type 99 id 0

debug2: PTY allocation request accepted on channel 0

debug2: channel_input_status_confirm: type 100 id 0

shell request failed on channel 0

ekzorchik@ekv:~$

Предыдущий вывод помог:

ekzorchik@ekv:~$ env -u LANG /usr/bin/sshpass -p <пароль>@ ssh Administrator@<ip_address_iLo_server>

Подключаемся к iLo серверу через sshpass.

 

Посмотреть какие учетные записи есть на iLo:

</map1>hpiLO-> show /map1/accounts

status=0

status_tag=COMMAND COMPLETED

/map1/accounts

Targets

Administrator

keiz

ekzorchik

Properties

Verbs

cd version exit show create

Создание учетной записи:

</map1/accounts>hpiLO-> create username=cluster password=Aa1234567 group=oemhp_power

status=0

status_tag=COMMAND COMPLETED

User added successfully.

Создаем учетную запись с полными правами на ilo:

</map1/accounts>hpiLO-> create username=cluster password=Aa1234567 group=admin,config,oemhp_power,oemhp_rc,oemhp_vm

status=0

status_tag=COMMAND COMPLETED

User added successfully.

Смотрим через графический интефейс какие группы добавились. Видим полный доступ посредством административной консоли iLo.

Создал для iLo учетную запись с полными правами.

 

Удаление учетной записи:

</map1/accounts>hpiLO-> delete /map1/accounts/cluster

status=0

status_tag=COMMAND COMPLETED

User deleted successfully.

Изменение пароля:

</map1/accounts>hpiLO-> set /map1/accounts/cluster password=Bb1234567

status=0

status_tag=COMMAND COMPLETED

 

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

четырнадцать − 2 =