![自动化一次性密码验证](https://linux22.com/image/1527247/%E8%87%AA%E5%8A%A8%E5%8C%96%E4%B8%80%E6%AC%A1%E6%80%A7%E5%AF%86%E7%A0%81%E9%AA%8C%E8%AF%81.png)
可以不用密码登录远程主机,即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
系统上的任何其他用户都无法访问所创建的套接字,因为在这种情况下他们也能够连接到您的服务器!