Para contornar o problema de tunelamento usando ssh para acessar o Jupyter notebook. A ideia é usar o ngrok para acessar o jupyter sem a necessidade de tunelamento via ssh.
https://console.cloud.google.com/compute/instances
Inicie a instância e abra o shell:
Execute os comandos abaixo para permitir que o usuario do shell possa modificar o conteudo dos notebooks
sudo chmod -R 777 /home/jupyter/
Instalação do ngrok no shell
Download
wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
Unzip
unzip ngrok-stable-linux-amd64.zip
Aqui teremos o binario do ngrok na home
Vamos configurar o Jupyter para usarmos senha para acessar, ao invés de token e também para permitir acesso remoto.
O passo de definição de senha não é obrigatório, mas daí será preciso usar o token criado na inicialização do Jupyter. Creio que seja mais prático acessá-lo usando senha.
Criando o arquivo de configuração do Jupyter, execute os comandos abaixo.
Cria arquivo de configuração:
jupyter notebook --generate-config
Define senha de acesso:
jupyter notebook password
Habilita acesso remoto:
echo "c.NotebookApp.allow_remote_access = True" >> ~/.jupyter/jupyter_notebook_config.py
Neste passo, podemos abrir um novo shell do gcp para deixar executando o jupyter e outro para o ngrok, porém vou usar somente um para isso.
jupyter notebook /home/jupyter &
o "&
" serve para colocar o jupyter para rodar em background.
cd ~
./ngrok http 8888
Acesse o link gerado pelo ngrok, http ou https
Coloque a senha definida para seu Jupyter e voilá!
:wq!