我想写一个shell脚本来连接多个linux主机并收集服务器端信息/监控细节。
由于我需要为给定的服务器列表ssh username @ hostname,我只是想知道我可以一次输入/硬编码密码并阻止ssh命令提示输入每个ssh命令的密码。
我在所有服务器上使用相同的密码。
我写了一个shell脚本,但是它继续提示我在循环中输入ssh命令的密码。
答案 0 :(得分:1)
尝试使用sshpass
。
sshpass -p "password" ssh -o StrictHostKeyChecking=no user@server
或使用公钥认证(您将通过没有密码保证的密钥建立ssh连接):
ssh-keygen -t rsa
ssh-copy-id user@server
答案 1 :(得分:1)
Stanley R的答案很好。
另外,请考虑使用ControlMaster,它可以让您的脚本运行得更快,因为您可以避免每次连接的成本。作为一种副作用,它应该意味着你只需要登录一次,所以它会通过侥幸解决你的问题。