1

团队,

我在远程机器上运行命令时遇到了一些困难。我无法理解为什么 ssh 试图认为我传递的命令是主机。

ssh -tt -i /root/.ssh/teamuser.pem teamuser@myserver '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.

如果我不传递命令,它绝对可以正常工作。它只是让我登录。有什么想法吗?

4

1 回答 1

0

Man ssh说:

如果指定了 command,它将在远程主机而不是登录 shell 上执行。

问题是这cd是一个内置的 bash(type cd在您的终端中运行)。因此,ssh 尝试cd作为 shell 运行,但在PATH.

您应该像这样调用 ssh:

 ssh user@host  -t 'bash -l -c "cd ~/bin && ./ssh-out.sh"'
于 2016-08-12T22:37:32.137 回答