在没有密码提示的情况下自动进行 SSH 通信

在没有密码提示的情况下自动进行 SSH 通信

我想使用 ssh 与 host1 进行通信,

假设我有 host2 的用户名/密码,我想通过 shell 脚本使用 ssh 连接到 host2(将用户名和密码作为参数)

有人可以帮我写同样的shell脚本吗?

答案1

我认为写下密码不是一个好主意。看看ssh钥匙。您只需在 中创建一对公钥和私钥host1并将公钥复制到其中host2这里是有关如何操作的教程。

答案2

尝试一下它可以工作,您需要安装expect才能使其工作#!/bin/bash

HOSTS="VM2 VM3 VM4 VM1"

read -p "Password: " PASSWORD

for HOST in $HOSTS
do
expect -c "
your command 
    expect {
    "*password:*" { send $PASSWORD\r;interact }
    }
    exit
    "
done

答案3

看看ssh-agentsshpass

如果他们没有解决您的问题,请解释为什么他们没有解决问题。

答案4

如果您想进行持久的 ssh 通信,可以使用 autossh 等实用程序。

相关内容