我想从特定网络连接时登录 ssh 而不提供密码(我知道存在风险)。
这是可以配置的东西吗?
请注意,我不是指基于密钥的身份验证(我已经为暴露网络实施了该技术),而是指无需输入该用户的密码即可输入登录名并进行身份验证的能力。
答案1
是的,像这样:
sshpass -pfoobar ssh -o StrictHostKeyChecking=no user@host command_to_run
密码是一个旨在使用称为“键盘交互”密码验证的模式但处于非交互模式下运行 ssh 的实用程序。
ssh 使用直接 TTY 访问来确保密码确实由交互式键盘用户发出。Sshpass 在专用 tty 中运行 ssh,使其误以为它正在从交互式用户那里获取密码。
要运行的命令在 sshpass 自己的选项后指定。通常它将是带有参数的“ssh”,但它也可以是任何其他命令。但是,ssh 使用的密码提示目前已硬编码到 sshpass 中。