29.09.2016 02:48, Artem Chuprina пишет:
On 29 September 2016 7:27:25 am GMT+11:00, sergio <mail...@sergio.spb.ru> wrote:
Есть ssh к ipmi.

Туда можно залогиниться (правда только по паролю) и получить сериал
консоль, сказав: start /system1/sol1


Вот есть connectbot на андроиде, он помнит всё и по одной кнопке я
получаю сериал.


Так работает:
% sshpass -pPASS ssh -l sergio localhost 'ls -l'
total ...

Так нет:
% sshpass -pADMIN ssh -l ADMIN ipmi-host 'start /system1/sol1'

ATEN SMASH-CLP System Management Shell, version 1.04
Copyright (c) 2008-2009 by ATEN International CO., Ltd.
All Rights Reserved

->

Даёт cli, а 'start /system1/sol1' не отрабатывает!


P.S. sshpass, понятно, ни при чём:
% ssh ADMIN@moo-ipmi 'start /system1/sol1'
после ввода пароля тоже просто даёт cli.

Там может быть много разного. Начиная с того, что оно может хотеть терминала (ключ -t у 
ssh) и заканчивая тем, что start может оказаться запуском задачи в фоне, которая тем не 
менее выводит что-то в stdout/stderr, и тупо обламывается на этом выводе, потому что ssh 
уже отцепился. Я так понял по "дает cli", ssh не отцепляется, т.е. скорее 
первое.

Скорее всего, SSH-сервер просто игнорирует команду, переданную через параметр. 
То есть нужно эмулировать ввод команды с клавиатуры. Что-то вроде этого:

(echo 'start /system1/sol1'; cat) | ssh ADMIN@moo-ipmi

Эта команда сначала передаёт на сервер строку 'start /system1/sol1', а затем 
команда cat начинает передавать на сервер ввод с клавиатуры. Если ввод нужен не 
с клавиатуры, а откуда-то ещё, то вместо cat нужно подставить команду, которая 
генерирует этот ввод в stdout.

Ответить