使用 bash 执行 SSH 命令

使用 bash 执行 SSH 命令

我在 .txt 文件中有一个服务器列表。假设授权密钥已全部存储在服务器中。

#!/bin/bash
while read server <&3; do #read server names into loop
[[ $server =~ ^[[:space:]]*$ ]] && continue #prevents a empty line in file
    echo "Name read from file - $server"
    #SSH login
    ssh "$server" 
done 3</home/u0146121/Matt/servers.txt

我的问题是......

我是否正确使用 ssh?这一切都是非交互式的吗?

注意 - 我会尝试在服务器上进行此操作,但我还无法访问它们,并且我想事先确保语法正确。我是 bash 和 ssh 的初学者。

答案1

我想这就是你要找的https://stackoverflow.com/a/3872762/678611

答案2

ssh“$服务器”

此行中的命令是交互式的。使用如下命令:

ssh $server“uname -a;日期”

它将登录到服务器,uname -a然后在那里执行date,断开与服务器的连接并继续执行脚本。

相关内容