从密码提示中停止 SCP

Stop SCP from password prompt

我正在尝试将我的配置文件复制到服务器列表 (5K)。我正在使用私钥来进行身份验证。一切都按预期顺利进行,但我有一点小烦恼:

有时服务器不接受我的密钥(没关系,我不在乎是否有几台服务器没有收到我的配置文件)但由于同样被拒绝,弹出提示要求输入密码并停止执行,直到我键入CTRL-C 中止它。

如何确保 SCP 使用密钥并且只使用密钥,并且从不提示输入任何密码?

注意:我打算在末尾添加一个符号,以便稍后并行完成所有副本。

代码

#!/bin/bash

while read server
do
    scp -o "StrictHostKeyChecking no" ./.bash_profile rouser@${server}:/home/rouser/
    
done <<< "$( cat all_servers.txt )"

-B' 选择批处理模式(防止询问密码或口令)