All pages
Powered by GitBook
1 of 3

Loading...

Loading...

Loading...

From Non-compliant Networks (2-FA)

Accessing VSCode from Non-Brown compliant networks

This guide is only for users connecting from Non-Brown Compliant Networks. 2-FA is mandatory.

  1. Install the Remote Development extension pack for VSCode

  2. Open VSCode settings

  • On Windows/Linux - File > Preferences > Settings

  • On macOS - Code > Preferences > Settings

Search for symlink and make sure the symlink searching is unchecked

3. Under VSCode settings, search for remote ssh timeout and manually enter a timeout value i.e. 50s. It should give you enough time to complete 2-Factor Authentication.

4. Edit the ~/.ssh/config file on your local machine, add the following lines. Replace <username> with your Oscar username.

6. In VSCode, select Remote-SSH: Connect to Host… and after the list populates select ccv-vscode-node

  1. When prompted in VSCode, please enter your Brown password and complete the DUO authentication. After that, wait about 30 seconds and VSCode should connect to Oscar.

# Jump box with public IP address
Host jump-box
  HostName ssh8.ccv.brown.edu
  User <username>
# Target machine with private IP address
Host ccv-vscode-node
  HostName vscode1
  User <username>
  ProxyCommand ssh -q -W %h:%p jump-box

Setup virtual environment and debugger

  1. If you have an existing virtual environment, proceed to step 2. Otherwise, to create a new virtual environment:

$ python3 -m venv my_env
$ source my_env/bin/activate
#Install packages manually or from requirements.txt file
$ pip install -r requirements.txt

2. Search for Python.VenvPath as shown in the picture below:

Select your virtual environment

3. VSCode expects you to have multiple virtual environments for each of your different python projects, and it expects you to put them all in the same directory. Pointing to the parent directory lets it scan and find all expected virtual environments, and then you can easily toggle between them in interface.

4. Once you have the virtual environment selected, the debugging capabilities should work.

Remote IDE (VS Code)

You can access Oscar's file-system remotely from Visual Studio Code (VS Code). Note that access of Oscar from VS Code is still considered experimental, and as such, 24x7 support is not available.

VS Code one-time setup

To use VS Code you must be on a Brown compliant network or connected to the VPN. Please install the Brown VPN client before proceeding.

September 10, 2023: Some users have reported issues while connecting to the Oscar VS Code remote extension. This is due to a recent change introduced by VS Code. To address this issue

Ctrl (cmd on Mac) + Shift + P > Remote-SSH: Settings

Disable the Remote.SSH: Use Exec Server option

To use VS Code you will need to be connected to the VPN. Please install the before proceeding.

Step 1: Install VSCode Extension

Install the for VS Code:

Step 2: Uncheck symlink box

Open VS Code settings and uncheck symlink:

Code > Preferences > Settings

File > Preferences > Settings

Search for symlink and make sure the symlink searching is unchecked

Step 3: Setup Passwordless SSH

Make sure you have set up passwordless SSH authentication to Oscar. If you haven't, please refer to this .

If you have Windows Subsystem for Linux (WSL) installed in your computer, you need to follow the instructions for Windows (PowerShell).

Step 4: Edit the SSH config file

Edit the config file:

The config file is located at:

~/.ssh/config

The config file is located at:

If you have Windows Subsystem for Linux (WSL) installed in your computer, you need to follow the instructions for Windows (PowerShell).

Edit the config file on your local machine, add the following lines. Replace <username> with your Oscar username.

Step 5: Fixes

September 10, 2023: Some users have reported issues while connecting to the Oscar VSCode remote extension. This is due to a recent change introduced by VSCode. To address this issue

Step 6: Connect for the first time

In VS Code, select Remote-SSH: Connect to Host… and after the list populates select ccv-vscode-node

Step 7: Initial Setup

Install and set up of VS Code

After a moment, VS Code will connect to the SSH server and set itself up.

After a moment, VS Code will connect to the SSH server and set itself up. You might see the Firewall prompt, please click allow.

Step 8: Configure VS Code

Important: Please run the following to add a settings.json file to your config. This is because the filewatcher and file searcher (rg) indexes all the files you have access to in your workspace. If you have a large dataset (e.g. machine learning) this can take a lot of resources on the vscode node.

Connect to VS Code first.

You can either create a symlink via the ln command below,

or manually create /users/$USER/.vscode-server/data/Machine/settings.json file with following contents

Reconnect to VS Code

  1. Click the green icon "Open a Remote Window" in the bottom left corner of VS Code Window. Then click "Connect to Host" in the drop down list.

2. Select the ccv-vscode-node option to connect to Oscar.

Brown VPN client
Remote Development extension pack
documentation page
Allow Firewall connections
C:\Users\<uname>\.ssh\config
# Jump box with public IP address
Host jump-box
    HostName poodcit4.services.brown.edu
    User <username>

# Target machine with private IP address
Host ccv-vscode-node
    HostName vscode1
    User <username>
    ProxyCommand ssh -q -W %h:%p jump-box
Ctrl (cmd on Mac) + Shift + P > Remote-SSH: Settings
Disable the Remote.SSH: Use Exec Server option
cp -v /gpfs/runtime/opt/vscode-server/ccv-vscode-config/settings.json /users/$USER/.vscode-server/data/Machine/settings.json
{
    "files.watcherExclude": {
        "**/.git/objects/**": true,
        "**/.git/subtree-cache/**": true,
        "**/node_modules/**": true,
        "/usr/local/**": true,
        "/gpfs/home/**": true,
        "/gpfs/data/**": true,
        "/gpfs/scratch/**": true
    },
    "search.followSymlinks": false,
    "search.exclude": {
        "**/.git/objects/**": true,
        "**/.git/subtree-cache/**": true,
        "**/node_modules/**": true,
        "/usr/local/**": true,
        "/gpfs/home/**": true,
        "/gpfs/data/**": true,
        "/gpfs/scratch/**": true
    }
}