无法使用Apache通过SSH连接服务器

时间:2018-11-22 08:29:07

标签: linux bash apache ssh cgi

我遇到了通过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的权限吗?该怎么做?

2 个答案:

答案 0 :(得分:0)

谢谢大家! 通过从用户SAS运行apache服务器解决了问题。

答案 1 :(得分:-1)

这是我从您的问题中得出的结论:

  • 系统A使用用户“ apache”运行httpd。
  • 系统B有一个名为“ sas”的用户。
  • 您希望用户“ apache”使用“ sas”用户连接到系统B。
  • 您的连接代码不显示正在使用的任何密码或密码。您也没有提到ssh代理,因此ssh连接是通过ssh密钥完成的。
  • 系统B上的
  • sshd配置为允许没有密码的连接(即使用密钥身份验证)。从上面的评论中,看到以下内容:https://superuser.com/questions/543626/ssh-permission-denied-on-correct-password-authentication,John Siu的答案。

在系统A上,用户“ apache”:

  • 如果还没有,请在〜/ .ssh中设置一个私钥和一个公共ssh密钥(ssh-keygen,在网上检查并有据可查)。

在系统B上,用户“ sas”:

  • 用户“ sas”,在〜/ .ssh中,创建(如果需要)名为authorized_keys的文件。
  • 在此文件中,放入系统A中“ apache”用户的公钥。
  • 这将允许系统A上的用户“ apache”通过用户“ sas”连接到系统B。

在系统B上避免使用陷阱

  • 确保对用户“ sas”(〜/ .ssh)的权限为700。
  • “ sas”用户的〜/ .ssh / authorized_keys权限为600。
  • “ sas”用户的
  • 权限约为700。在这里,我的意思是“ sas”的主目录。例如〜for“ sas”是/ home / sas,那么如果您ls -al /home,应该会看到目录sas包含700。

要调试,您可以执行ssh -v -v -v sas@sas-p1l-comp


关于系统A上关于known_hosts的问题,当它首次连接到系统B时,如果在文件中找不到系统B,则ssh会为您添加它。但是您必须至少手动执行一次。 ssh客户端将要求您确认添加,这只能在命令行上完成。 Web界面不会回答客户端。因此,手动连接一次,然后您就可以上网了。


在此之前,没有任何尝试尝试在系统A上设置httpd的步骤。这必须首先在命令行上进行。

相关问题