2016-08-10 4 views
1

Команда,удаленный выпуск команды ssh

У меня возникли трудности с запуском команд на удаленной машине. Я не могу понять, почему ssh пытается думать, что команда, которую я передаю, является хостом.

ssh -tt -i /root/.ssh/teamuser.pem [email protected] 'cd ~/bin && ./ssh-out.sh' 

|-----------------------------------------------------------------| 
| This system is for the use of authorized users only.   | 
| Individuals using this computer system without authority, or in | 
| excess of their authority, are subject to having all of their | 
| activities on this system monitored and recorded by system  | 
| personnel.              | 
|                 | 
| In the course of monitoring individuals improperly using this | 
| system, or in the course of system maintenance, the activities | 
| of authorized users may also be monitored.      | 
|                 | 
| Anyone using this system expressly consents to such monitoring | 
| and is advised that if such monitoring reveals possible   | 
| evidence of criminal activity, system personnel may provide the | 
| evidence of such monitoring to law enforcement officials.  | 
|-----------------------------------------------------------------| 

ssh: Could not resolve hostname cd: No address associated with hostname 
Connection to myserver closed. 

Он работает абсолютно нормально, если я не передаю команду. Он просто вводит меня в игру. Любые идеи?

ответ

0

Man ssh говорит:

Если указана команда, она выполняется на удаленном хосте вместо Войти оболочки.

Дело в том, что cd является Баш встроенный (запустить type cd в терминале). Итак, ssh пытается запустить cd в качестве оболочки, но не может найти его в PATH.

Вы должны вызывать SSH-то вроде этого:

ssh [email protected] -t 'bash -l -c "cd ~/bin && ./ssh-out.sh"'