0

我正在运行一个自动化脚本来自动化登录和使用 plink 在远程目标上运行的其他一些命令。我使用以下方法进行自动登录并保存 RSA 密钥:

user@ubuntu~$ echo -e 'y\n' | plink root@<target ip> -pw <password> "pwd"

该命令通过命令行运行时保存密钥,但使用脚本运行时,保存RSA密钥不一致。考虑传递的用户名和密码是正确的,它提示错误消息为Connection refused,因为在提示输入中未获取“y”。

很多时候,它会一次又一次地提示接受密钥,因为我的脚本中同时使用了许多连续的 plink 命令。理想情况下,它不应该多次要求用户输入。我检查了 ~/.putty 文件夹中不存在的“sshhostkeys”文件,这是每次运行 plink 时提示用户输入的原因。

有没有人之前遇到过这个问题?对此有任何修复,或对此有任何破解/解决方法吗?

PS:使用expect脚本,或者使用putty手动保存profile,或者手动运行plink命令保存key一次,正在排除(不考虑)。

4

1 回答 1

0

得到了解决方案,实际上问题在于分配给$HOME/.putty目录的权限。该文件夹的所有权信息也是根目录,因此当我尝试运行时

user@ubuntu~$ echo -e 'y\n' | plink root@<target ip> -pw <password> "pwd"

由于权限问题,密钥没有保存在 .putty 文件夹中,因此我反复收到“(y/n)”的提示。上面的命令在一次运行时无法创建文件sshhostkeys文件,因为它一次又一次地要求保存密钥,每次它尝试保存密钥但由于没有 root 权限而无法保存。通过为所有其他或其他方法分配 rwx 权限来解决此问题,(sudo chmod 707 ~/.putty)可以通过“chown”将所有权信息更改给运行脚本的用户。

于 2013-12-27T04:07:29.070 回答