我有一个Ubuntu的服务器和运行Cygwin的Windows XP客户端。 服务器ssh进入客户端,并尝试用一些参数执行一个shell脚本,命令如下:
ssh user@IP_ADDR 'sh /home/user/project/clientside 2 5 7 6 9 5 7 IP_ADDR'
其中IP_ADDR是客户端的IP地址。
但是,虽然这样做,我得到以下错误:
Access is denied.
想到这可能是一个用户权限错误,我试着在userlogin时在Cygwin上的客户端上运行sh /home/user/project/clientside 2 5 7 6 9 5 7 IP_ADDR 。
这按预期工作。
然后我认为这可能是我login到客户端时使用的login错误。 所以我执行这个,而不是:
ssh user@IP_ADDR 'whoami'
并找回了user 。
甚至在Cygwin的客户端上执行了chmod -R 777 /home/user/project之后,就发生了这种情况。
对于脚踢,我在客户端上了Cygwin,并执行了ssh localhost并手动执行了sh /home/user/project/clientside 2 5 7 6 9 5 7 IP_ADDR 。
这按预期工作。
但是,当我做了从Cygwin ssh IP_ADDR和做ssh localhost和手动执行sh /home/user/project/clientside 2 5 7 6 9 5 7 IP_ADDR ,我得到相同的Access is denied. 错误。
为什么发生这种情况? 我怎样才能解决这个问题?
顺便说一下,服务器和客户端都有彼此的rsa公钥无密码的SSH
问题是他们的方式Windows服务工作。
这解决了这个问题:
Run Dialog services.msc )。 CYGWIN sshd服务 CYGWIN sshdinput服务属性 Log On选项卡下,确保将“ Log on as设置为“ Local System account并选中“ Allow service to interact with desktop 你可以试试ssh IP_ADDR sh echo lalala来确实可以打开shterminal。 如果失败…你知道原因。 另外,给我们提供一个/ var / log / messages和/ var / log / secure {或者你认为有用的任何日志会有帮助}