自动化一次性密码验证

自动化一次性密码验证

可以不用密码登录远程主机,即ssh-copy-id <host>

但是,每次登录远程主机时,我都需要输入一次性密码 (OTP)。我怎样才能跳过这个 OTP 部分?是否可以将 ssh 会话存储在我的 PC 上有限的时间内?

我正在使用 Ubuntu 16.04.02

答案1

不可以。“第二因素”的意义在于它与密码不同,因此它不应该与第一因素存储在同一设备上。

一次性密码是交互式质询-响应,因此不建议自动化(出于安全考虑)。

但是...OpenSSH 中有一个选项ControlMaster功能ControlPersist,它可以解决您的问题。它允许您使用单个 TCP 连接发起多个 ssh 会话,并在原始连接结束后保留​​此主连接一段时间。

怎么做?将此配置片段存储在~/.ssh/config

Host your-server
  ControlPath ~/.ssh/control-master-%C
  ControlMaster auto
  ControlPersist 5m

但请确保~/.ssh/control-master-%C系统上的任何其他用户都无法访问所创建的套接字,因为在这种情况下他们也能够连接到您的服务器!

相关内容