通过SSH发出命令提示输入密码

时间:2018-11-19 16:40:33

标签: linux bash ssh raspberry-pi

我在继承的项目中使用的脚本遇到了问题,该脚本几乎没有文档,也正在记录所有内容。我正在尝试调试在主机上执行的脚本的一行问题,以使用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上远程执行此命令吗?

2 个答案:

答案 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,所以我不知道它在那里。