2013-10-15 3 views
0

я пытаюсь открыть сеанс Unix через код Java и окна с помощью putty.exe следующим образом:команда Unix выполняется до того, как аутентификация завершена через SSH

Runtime.getRuntime().exec("cmd /c start /B C:/scripts/Session.bat "); 

содержимое файла «Session.bat» является:

putty.exe -t -ssh [email protected] -pw abcd -P 22 

aaa - имя сервера. корень - имя пользователя. ABCD это пароль

Теперь сессия открывается хорошо, но я хочу, чтобы запустить пару простых команд из приведенных выше команд (Л.Л. -s, PWD и т.д.). Но когда я пытаюсь добавить txt-файл, который содержит эти команды для указанной выше команды, я вижу, что команды выполняются после ввода имени пользователя и перед паролем. полная команда:

putty.exe -t -ssh [email protected] -pw abcd -P 22 -m C:\scripts\commands.txt 

, именно поэтому я получаю ошибку (ниже), так как команда «LL» был до пароля:

Using username "root". 

bash: ll:: command not found 

Пожалуйста, помогите мне ... Спасибо

+3

Я предполагаю, что это просто потому, что 'll' является псевдонимом, который' root' не имеет. Что, если у вас вместо этого есть 'ls'? – fedorqui

ответ

0

Невозможно выполнить команду на удаленном компьютере до того, как будет обработан пароль. Конечно, в корневых файлах загрузки bash отсутствует псевдоним.

Постарайтесь добавить alias ll='ls -l' в /root/.bash_profile?

+0

Я думаю, это должно быть 'ls -l' (длинный список) – SriniV

+0

Действительно. Исправленный. Спасибо. – damienfrancois

+1

@ user1630359 Запустите действительную команду, которую вы хотите запустить; не полагайтесь на псевдоним. –

Смежные вопросы