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

标签 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 上远程执行此命令?

最佳答案

快速修复:

sshpass -p 'password' ssh -o StrictHostKeyChecking=no  user@server

详细修复:

您很可能需要设置异步 key (公共(public)/私有(private))才能正确无密码登录。您的命令没有显示您正在使用 key ,因此我假设您没有使用 key (例如 -A 或 -i/path/to/key)。一般来说 root 用户被阻止(我想不是你的问题),我会为此设置另一个用户或更改 sshd 配置。您还可以比较 Pi Box 之间的 sshd 配置。

参见:https://www.raspberrypi.org/documentation/remote-access/ssh/passwordless.md

关于linux - 通过 SSH 提示输入密码发出命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53379106/

相关文章:

python - 处理 sshpass 密码字段中的特殊字符

linux - 为什么我得到 "svn: command not found"

linux - tmpfs使用的内存是否可以像page cache一样被回收?

linux - jar 文件的 Systemd 服务在几分钟后出现 "operation timed out"错误或停留在 "activating mode"

linux - 为什么 php 进程在那里挂了将近 3 个月?

linux - 如何使用 grep 提取 UID 信息?

bash - 为什么我不能将输出从 sed 重定向到一个文件

python - 尝试在 Mac OS X 上设置 Enthought enpkg 时出现钥匙串(keychain)问题

linux - 尝试终止进程时出错 -- "kill: pid: arguments must be process or job IDs"

c++ - 如何在 Linux 上的 C++ 中包含 <atomic>?