测验:基于密钥的认证
我把密钥放在authorized_keys中,但它一直要求我输入密码。首先要检查什么?
- 服务器上的密码验证设置
- 主目录、~/.ssh 和authorized_keys 权限
- 关键算法兼容性
- 客户端的known_hosts
什么情况下需要IdentitiesOnly yes?
- 当由于服务器上只注册了一个密钥而不会造成混乱时
- 写入没有密码短语的密钥时
- 使用 ProxyJump 通过中转服务器连接时
- 当多个密钥上传到代理并首先被服务器上的 MaxAuthTries 检测到时。
authorized_keys线上的restrict选项有何作用?
- 您只能使用该密钥登录,但不能使用 shell。
- 限制可以使用该密钥的连接源地址。
- 指定密钥的有效期并导致其过期。
- 关闭所有附加功能(例如转发、PTY 和代理),并仅打开必要的功能。
分发密钥中添加command="/usr/local/bin/deploy"有什么作用?
- 无论客户端请求什么,服务器只执行指定的命令。
- 客户端只能调用该命令
- 如果命令失败,连接就会丢失。
- 留下单独的命令执行日志。
为什么在检索 SSH 密钥时仅从authorized_keys 中删除一行还不够?
- 文件已缓存
- 痕迹也保留在known_hosts中
- 代理记住了钥匙
- 已经打开的会话保持不变。
RHEL系列手动创建主目录后密钥认证失败。标准溶液是什么?
- chmod 777 ~/.ssh
- 重新启动 sshd
- 使用restorecon -Rv ~/.ssh 恢复SELinux 上下文
- 重新创建authorized_keys