Linux 无法使用Apache通过SSH连接服务器
我遇到了通过ssh连接到服务器的问题 我有一个服务器a和B。我从服务器a运行.sh脚本,该脚本解析服务器a上的日志,然后连接到服务器B并执行相同的任务。在控制台中,一切正常,但不适用于web界面 我使用带有apache2的cgi连接到服务器。当我在服务器A上运行脚本时,它解析日志并返回relult,但它无法连接服务器B 以下是httpd的日志:Linux 无法使用Apache通过SSH连接服务器,linux,bash,apache,ssh,cgi,Linux,Bash,Apache,Ssh,Cgi,我遇到了通过ssh连接到服务器的问题 我有一个服务器a和B。我从服务器a运行.sh脚本,该脚本解析服务器a上的日志,然后连接到服务器B并执行相同的任务。在控制台中,一切正常,但不适用于web界面 我使用带有apache2的cgi连接到服务器。当我在服务器A上运行脚本时,它解析日志并返回relult,但它无法连接服务器B 以下是httpd的日志: [Thu Nov 22 14:09:34 2018] [error] [client 10.1.68.243] Permission denied, p
[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授予权限?如何做到这一点?这是我从你的问题中得出的假设:
- 系统A使用用户“apache”运行httpd
- 系统B有一个名为“sas”的用户
- 您希望用户“apache”使用“sas”用户连接到系统B
- 您的连接代码未显示正在使用的任何密码或密码短语。您也没有提到ssh代理,因此ssh连接是通过ssh密钥完成的
- 系统B上的sshd配置为允许无密码连接(即使用密钥身份验证)。从上面的评论中,可以看到以下内容:,萧如彬的回答
- 如果还没有,那么在~/.ssh中,您应该设置一个私有和一个公共ssh密钥(ssh-keygen,在web上检查,有很好的文档记录)
- 用户“sas”在~/.ssh中创建一个名为
的文件(如果需要)authorized_keys
- 在这个文件中,放置system A中“apache”用户的公钥
- 这将允许系统A上的用户“apache”使用用户“sas”连接到系统B
- 确保用户“sas”~/.ssh的权限为700
- 用户“sas”~/.ssh/authorized_密钥的权限为600
- 用户“sas”~的权限为700。这里我指的是“sas”的主目录。例如,~对于“sas”是/home/sas,那么如果您
您应该会看到带有700的sas目录ls-al/home
ssh-v-v-vsas@sas-p1l组件
对于您关于已知_主机的问题,在系统A上,当它第一次连接到系统B时,如果在文件中找不到系统B,ssh将为您添加它。但是你必须至少手工做一次。ssh客户端希望您确认添加,这只能在命令行上完成。web界面将不会响应客户端。所以,手动连接一次,那么你也可以上网了
在此之前,尝试在系统A上设置httpd是没有意义的。这必须首先在命令行中工作。谢谢大家!
通过从用户SAS运行apache server解决了此问题。通常,您的脚本也可以由其他用户(包括apache)执行。第一个
rwx
用于文件所有者,第二个rwx
用于与文件所有者属于同一组的用户,最后一个r-x
表示任何其他用户都可以读取和执行这些文件。singrium,谢谢。所以,问题在于已知主机?我的意思是,我需要将我的主机ip 10.1.68.243添加到已知主机吗?老实说,我不确定。但是试一试。看看这些链接:谢谢,尼克。我会试试看你应该接受首选答案(复选标记)。这就是我们积累声誉点数的方式(就像你回答问题时所做的那样)。你的回答应该是对你的问题的评论。