GCP AI Notebook实例SSH远程访问时/home/jupyter目录无写入权限问题
GCP AI Notebook VSCode远程SSH无/home/jupyter写入权限解决方案
方案1(推荐):配置SSH直接以jupyter用户登录
该方案和GCP AI Notebook的原生用户设计完全匹配,后续安装Python依赖、修改文件等操作都不会和JupyterLab产生权限冲突。
- 先用自己的账号SSH登录VM实例,执行以下命令切换到root权限:
sudo su - 进入jupyter用户的家目录,检查.ssh目录是否存在,不存在则创建并配置正确权限:
cd /home/jupyter mkdir -p .ssh chmod 700 .ssh - 将你本地SSH公钥(默认路径为本地用户目录下的
~/.ssh/id_rsa.pub)的内容,追加到/home/jupyter/.ssh/authorized_keys文件中 - 配置ssh相关文件的属主和权限:
chown -R jupyter:jupyter .ssh chmod 600 .ssh/authorized_keys - 编辑你本地的SSH config文件(
~/.ssh/config),找到对应GCP实例的配置项,将User字段的值改为jupyter - 重启VSCode后重新连接实例,此时登录用户为jupyter,对
/home/jupyter目录有完全读写权限,和JupyterLab内置终端的权限完全一致
方案2:保留个人用户登录,修改目录权限继承
如果需要保留用个人账号登录VM的习惯,可通过修改目录权限和默认掩码解决问题:
- 先确认你的个人用户已加入jupyter用户组,执行命令:
sudo usermod -aG jupyter 你的个人用户名,执行完成后需完全登出VM再重新登录,组配置才会生效 - 递归给/home/jupyter目录配置组读写权限,同时给所有目录配置SGID位,确保后续新建的文件/目录自动继承jupyter属组:
sudo chmod -R g+rwX /home/jupyter sudo find /home/jupyter -type d -exec chmod g+s {} \; - 配置默认umask为002,确保新建的文件对同组用户开放读写权限:可在个人用户的
~/.bashrc文件末尾添加一行umask 002,保存后执行source ~/.bashrc生效 - 该方案下你和jupyter用户同属jupyter组,双方创建的文件都可以互相编辑修改
注意:不要使用
chmod 777的临时方案,该方式会带来严重的安全隐患,且无法解决新建文件的权限问题。
内容的提问来源于stack exchange,提问作者Craig
相关产品推荐
相关产品推荐

