Shell 我想使用expect或其他方法(keygen除外)连接到远程主机

Shell 我想使用expect或其他方法(keygen除外)连接到远程主机,shell,for-loop,expect,Shell,For Loop,Expect,我正在对我的远程主机用户名和密码进行加密,需要使用它从我的Mac连接到远程主机…我使用Expect,但它不工作…它只是提示输入密码…我不想使用无密码keygen 尝试了下面的代码…但提示输入密码 #!/usr/bin/expect -f set timeout 20 set pass “ABDFDF” ssh name@xyz.com expect ssh name@xyz.com: send $pass; interact 应为:连接到远程主机 实际:name@xyz.com的密码:在提示输

我正在对我的远程主机用户名和密码进行加密,需要使用它从我的Mac连接到远程主机…我使用Expect,但它不工作…它只是提示输入密码…我不想使用无密码keygen

尝试了下面的代码…但提示输入密码

#!/usr/bin/expect -f
set timeout 20
set pass “ABDFDF”
ssh name@xyz.com
expect ssh name@xyz.com:
send $pass;
interact
应为:连接到远程主机
实际:name@xyz.com的密码:

在提示输入密码之前,您正在发送密码。难道不应该有一个

 expect Password { send $pass }

期望密码{send${pass}\r};尝试了@user1934428…但结果相同如果在密码后显式发送回车符,也就是说,`send$pass\r}@user11458850:密码提示的拼写是否与ssh中的大写/小写字母完全相同?我已经像____________;一样更新了代码name@xyz.com的密码:…也更新了,如send$pass\r…。仍然是相同的结果。我看不出您已使用新命令更新了日志。我还注意到,您正在以一种不同寻常的方式启动ssh。是不是应该是spawn-ssh?如果您发布一个transscript,说明运行脚本时实际发生的情况,这也会有所帮助。您必须小心给expect命令提供了多少参数:这里您希望看到字符串ssh,当您看到它时,您将执行该命令name@xyz.com: