我在继承的项目中使用的脚本遇到了问题,该脚本几乎没有文档,也正在记录所有内容。我正在尝试调试在主机上执行的脚本的一行问题,以使用SSH调用连接到LAN的Raspberry Pi,以返回有关该Pi的一些信息。
我们已经有了该Raspberry Pi的工作版本,该版本可以执行脚本而不会出现问题,我不确定有什么区别。在新密码上执行时,它会提示您在Pi上输入root密码,但在设备的先前版本上尚未执行此操作。我认为它与SSH配置有关,但我对SSH的了解还不够,无法说明原因。
特别引起问题的行是:
ssh -o StrictHostKeyChecking=no {host_name} uname -a &>/dev/null
rc=$? #gets the return value of the remote command so we can read the uname info
{host_name}当然是它要连接的实际主机名,但是出于隐私方面的考虑,我省略了该部分。两台计算机上的脚本都相同。
两个Pi设备都是相同的型号,我在缩小可能导致我无法执行此命令的范围方面遇到了麻烦。有人知道我需要配置什么才能能够在Pi上远程执行此命令吗?
答案 0 :(得分:0)
快速修复:
sshpass -p 'password' ssh -o StrictHostKeyChecking=no user@server
详细修复:
您很可能需要设置异步密钥(公共/专用)才能正确进行无密码登录。您的命令未显示您正在使用键,因此我假设您没有使用键(例如-A或-i / path / to / key)。通常,root用户被阻止(我想不是您的问题),我会为此设置另一个用户或更改sshd配置。您还可以比较Pi Box之间的sshd配置。
请参阅:https://www.raspberrypi.org/documentation/remote-access/ssh/passwordless.md
答案 1 :(得分:0)
好的,因此,在进一步研究之后,我发现/ root下有一个单独的.ssh目录,其中包含一个authorized_keys文件。将其复制到新的Pi后,它可以正常工作。我一直在想,是否有单独的root配置文件夹,但是我从来没有深入研究/ root,所以我不知道它在那里。