【问题标题】:Automatically enter a password in a bash script [duplicate]在bash脚本中自动输入密码[重复]
【发布时间】:2015-10-07 13:39:28
【问题描述】:

我有一个在 Mac OS 中建立 SSH 连接的简单 bash 应用程序。

代码是这样的:

$ ssh user1@machine.com -p61023

当我运行脚本时,控制台总是提示输入密码。 (这是一个非常初级的过程

appelelog@sunlineclass.com's password:

我怎样才能使这个过程自动化?

【问题讨论】:

  • 试试sshpass 命令...
  • @Kalanidhi 成功了!我用这个:sshpass -p 'password' ssh user1@machine.com -p61023

标签: macos bash ssh


【解决方案1】:
  1. Create a key pair
  2. 将私钥添加到钥匙串:ssh-add -K ~/.ssh/host_id_rsa

除登录密码外,切勿再次输入密码。

如果你运行服务器,那么我做的其他事情:

  1. 侦听端口 422 而不是 22,以减少入侵尝试。
  2. 只允许通过公钥/私钥对登录,不允许通过密码登录。
  3. 只允许通过选定的用户列表登录(从不是 root)。

然而,这个问题是题外话,你应该问它here

【讨论】:

  • 对于 (1.) 查看 /etc/services 选择您最喜欢的未使用端口。在 5000-30000 范围内选择将使大多数脚本小子远离。 dsa 密钥在 openssh 7.2 中已弃用(出于安全原因),请选择像 ecdsa 这样的替代密钥。 (3.) 您可以使用/etc/ssh/sshd_config 中的AllowGroups 参数限制属于特定组成员的用户。好答案。 注意: 更改端口后,您可以在/etc/ssh/config~/.ssh/config 中指定Host Port 对,从而无需提供备用端口号。
  • 你的回答太好了,但我使用了sshpass 命令。 (@Kalanidhi 评论)顺便说一句,你有我的支持 :)
【解决方案2】:

@Kalanidhi 给了我一个提示:

这是我的新脚本

  sshpass -p 'yourpassword' ssh user@machine.com -p61023

【讨论】:

    猜你喜欢
    • 2012-05-23
    • 2015-08-03
    • 2012-11-18
    • 2012-05-17
    • 2017-07-05
    • 2018-07-07
    • 1970-01-01
    • 2016-10-17
    相关资源
    最近更新 更多