使用expect将密码传递给ssh

Mal*_*ist 38 ssh cygwin expect

如何使用expect将密码发送到ssh连接.

说密码是p @ ssword,ssh命令是ssh me@127.0.0.1

如果想要输入密码,我该怎么做呢?

me@127.0.0.1密码:

使用SSH密钥对的正确操作不是一个选项,因为我必须使用ssh(scp)将密钥放在服务器上,这会要求输入密码.

max*_*max 73

我总是使用"正确的"解决方案,但我在其他情况下使用了expect.

在这里我发现了以下建议:

#!/usr/local/bin/expect
spawn  sftp  -b cmdFile user@yourserver.com
expect "password:"
send "shhh!\n";
interact
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!感谢您回答这个问题,而不是告诉我应该怎么做. (45认同)
  • @Malfist:我不想这么说,但我正处于"解释备选方案"的心态,而不仅仅是严格回答这个问题.我觉得你可以通过这种方式获得更好的选择. (2认同)
  • @R.Bemrose喜欢尝试改变迷宫,而不是帮助导航它. (2认同)

Pau*_*xon 5

使用公钥认证并使用没有密码短语的密钥会不会更容易?

当源计算机上的用户执行此操作以生成RSA密钥时

ssh-keygen -t rsa
Run Code Online (Sandbox Code Playgroud)

现在将〜/ .ssh/id_rsa.pub复制到目标机器并将其附加到目标用户的authorized_keys文件