我遇到了通过ssh连接到服务器的问题。
我有一个服务器A和B。我从服务器A运行.sh脚本,该脚本解析服务器A上的日志,然后连接到服务器B并执行相同的任务。在控制台中,一切正常,但不能与Web界面一起使用。
我使用cgi whith apache2连接到服务器。当我在服务器A上运行脚本时,它解析日志并返回relult,但是它无法连接服务器B。
这是httpd的日志:
[Thu Nov 22 14:09:34 2018] [error] [client 10.1.68.243] Permission denied, please try again.\r, referer: http://cab-prod-comp-sd/cgi-bin/example-bash.sh?val_x=RDWH.&val_z=1
服务器脚本:
-rwsrwxr-x 1 sas sas 2217 Nov 22 11:25 /sas/oljas_scripts/find_usage_of_tables.sh
服务器B脚本:
-rwxrwxr-x 1 sas sas 1202 Nov 19 09:16 find_usage_of_tables.sh
我连接到服务器B的部分:
SAS_RESULTS=$(ssh sas@sas-p1l-comp /sas/oljas_scripts/find_usage_of_tables.sh $table_name)
感谢任何帮助。 谢谢!
编辑:
我需要授予用户Apache的权限吗?该怎么做?
答案 0 :(得分:0)
谢谢大家! 通过从用户SAS运行apache服务器解决了问题。
答案 1 :(得分:-1)
这是我从您的问题中得出的结论:
在系统A上,用户“ apache”:
在系统B上,用户“ sas”:
authorized_keys
的文件。在系统B上避免使用陷阱
ls -al /home
,应该会看到目录sas包含700。要调试,您可以执行ssh -v -v -v sas@sas-p1l-comp
。
关于系统A上关于known_hosts的问题,当它首次连接到系统B时,如果在文件中找不到系统B,则ssh会为您添加它。但是您必须至少手动执行一次。 ssh客户端将要求您确认添加,这只能在命令行上完成。 Web界面不会回答客户端。因此,手动连接一次,然后您就可以上网了。
在此之前,没有任何尝试尝试在系统A上设置httpd的步骤。这必须首先在命令行上进行。