假设我在一台服务器上有多个服务用户(example.com
)。
- 我
[email protected]
使用带公钥的 SSH - 我
[email protected]
使用带密码的 SSH
我定期从本地机器访问这两个用户。
有没有办法配置~/.ssh/config
文件以便它根据用户正确检测首选的身份验证类型?
换句话说,有没有办法配置事物每个用户对于给定的主机?
我正在想象这样的事情:
Host example.com
User foo
PreferredAuthentications publickey
IdentityFile ~/.ssh/key_for_foo
User bar
PreferredAuthentications password
谢谢!
答案1
除主办方之外的其他标准将使用匹配关键字:
Match host example.com user foo
PreferredAuthentications publickey
IdentityFile ~/.ssh/key_for_foo
Match host example.com user bar
PreferredAuthentications password
默认顺序是PreferredAuthentications
先尝试公钥,再尝试密码。如果你想始终使用带有用户名的密钥文件,那么不仅仅是[电子邮件保护],可以简化为:
IdentityFile ~/.ssh/key_for_%r
附言password
与 ssh 身份验证方法不同keyboard-interactive
。前者肯定是密码,后者允许 sshd 要求输入其他输入,例如 2FA 代码。