【问题标题】:Caching RSA key fingerprint in plink using bash script使用 bash 脚本在 plink 中缓存 RSA 密钥指纹
【发布时间】:2013-12-26 06:45:00
【问题描述】:

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

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

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

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

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

P.S: 正在排除使用expect脚本,或者使用putty手动保存配置文件,或者手动运行plink命令并保存一次密钥,正在被排除(不考虑)。

【问题讨论】:

    标签: linux bash plink


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-03-25
      • 1970-01-01
      • 1970-01-01
      • 2014-10-28
      • 1970-01-01
      • 2019-06-28
      • 1970-01-01
      • 2014-10-26
      相关资源
      最近更新 更多