本地通过SSH连接Notebook实例时,报错:Bad permissions/Permission denied (publickey)
问题现象
本地通过SSH连接Notebook实例时,报错:
Bad permissions/Permission denied (publickey)
原因分析
本地密钥不匹配或本地密钥文件权限不正确。
解决方案
- 在JupyterLab执行以下命令,检测服务端SSH是否正常。
$CONDA_BIN/python $COMMON_DIR/ssh_availability_check.py
图2 terminal命令示例
- 如果执行结果如下,表示远端SSH服务正常,应该是密钥存在问题。请执行步骤2。
图3 terminal结果示例
- 如果未出现上述结果,请参考以下文档进行排查。
- 如果执行结果如下,表示远端SSH服务正常,应该是密钥存在问题。请执行步骤2。
- 检查是否为自己本地密钥文件权限不正确。
- Mac系统:
图4 连接报错示例
出现上述报错,请执行以下命令修改权限。chmod 600 ${密钥文件路径} - Windows系统:
图5 连接报错示例
出现上述报错,请将密钥放到“C:/user/{用户名}”的目录或子目录下,仅允许当前用户有访问权限。
如果修改权限后仍报错,请执行步骤3。
- Mac系统:
- 检查密钥是否为自己配置的密钥或者是否为重名密钥。
您可以先停止Notebook实例,重新创建并绑定新的密钥,重启Notebook实例,然后重新使用SSH连接Notebook实例。如果连接正常,可能是因为密钥不匹配。您可以通过以下操作,判断密钥不匹配的原因。
- 查看密钥名称:在ModelArts管理控制台的Notebook实例详情页,查看“认证”值。
图6 Notebook实例详情页
- 查看是否为重名密钥:在密码安全中心控制台的页面,检查其他区域是否存在与上一步重名的密钥。
图7 账号密钥对
如果密钥不对应或存在重名,请尝试更换正确的密钥。
- 查看密钥名称:在ModelArts管理控制台的Notebook实例详情页,查看“认证”值。