

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Connect ke VPC dengan subnet tanpa akses internet
<a name="remote-access-local-ide-setup-vpc-no-internet"></a>

Sebelum menghubungkan Remote IDE Anda ke ruang Studio di subnet pribadi tanpa akses internet, pastikan administrator Anda memilikinya[Siapkan Studio untuk dijalankan dengan subnet tanpa akses internet dalam VPC](remote-access-remote-setup-vpc-subnets-without-internet-access.md).

Anda memiliki opsi berikut untuk menghubungkan IDE Jarak Jauh Anda ke ruang Studio di subnet pribadi:
+ Siapkan Proxy HTTP (didukung untuk VS Code dan Kiro)
+ Server dan ekstensi jarak jauh yang sudah dikemas sebelumnya (hanya Kode VS)

**penting**  
Kursor tidak didukung untuk menghubungkan ke ruang Studio di subnet pribadi tanpa akses internet keluar.

**Topics**
+ [Proxy HTTP dengan daftar izin terkontrol](#remote-access-local-ide-setup-vpc-no-internet-http-proxy-with-controlled-allow-listing)
+ [Server dan ekstensi jarak jauh yang sudah dikemas sebelumnya (hanya Kode VS)](#remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions)

## Proxy HTTP dengan daftar izin terkontrol
<a name="remote-access-local-ide-setup-vpc-no-internet-http-proxy-with-controlled-allow-listing"></a>

Saat ruang Studio Anda berada di belakang firewall atau proxy, minta administrator Anda untuk mengizinkan akses ke server IDE dan titik akhir terkait ekstensi CDNs dan titik akhir. Untuk informasi selengkapnya, lihat [Siapkan Proxy HTTP dengan daftar izin terkontrol](remote-access-remote-setup-vpc-subnets-without-internet-access.md#remote-access-remote-setup-vpc-subnets-without-internet-access-setup-http-proxy-with-controlled-allow-listing).

------
#### [ VS Code ]

Konfigurasikan proxy HTTP untuk pengembangan jarak jauh VS Code dengan menyediakan URL proxy dengan `remote.SSH.httpsProxy` pengaturan `remote.SSH.httpProxy` atau.

**catatan**  
Pertimbangkan untuk mengaktifkan “Remote.ssh: Use Curl And Wget Configuration Files” untuk menggunakan konfigurasi dari lingkungan dan file jarak jauh. `curlrc` `wgetrc` Ini agar `wgetrc` file `curlrc` dan, ditempatkan di lokasi default masing-masing di SageMaker ruang, dapat digunakan untuk mengaktifkan kasus-kasus tertentu.

------
#### [ Kiro ]

Konfigurasikan proxy HTTP untuk pengembangan jarak jauh Kiro dengan mengatur `aws.sagemaker.ssh.kiro.httpsProxy` pengaturan ke titik akhir proxy HTTP atau HTTPS Anda.

Jika Anda menggunakan server MCP (Model Context Protocol) di Kiro, Anda juga perlu menambahkan variabel lingkungan proxy ke konfigurasi server MCP Anda:

```
"env": {
    "http_proxy": "${http_proxy}",
    "https_proxy": "${https_proxy}"
}
```

------

Opsi ini berfungsi ketika Anda diizinkan untuk mengatur proxy HTTP dan memungkinkan Anda menginstal ekstensi tambahan secara fleksibel, karena beberapa ekstensi memerlukan titik akhir publik.

## Server dan ekstensi jarak jauh yang sudah dikemas sebelumnya (hanya Kode VS)
<a name="remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions"></a>

**catatan**  
Opsi ini hanya tersedia untuk Visual Studio Code. Kiro dan Cursor tidak mendukung pengaturan server jarak jauh yang sudah dikemas sebelumnya.

Jika ruang Studio Anda tidak dapat mengakses titik akhir eksternal untuk mengunduh server dan ekstensi jarak jauh VS Code, Anda dapat mengemasnya terlebih dahulu. Dengan pendekatan ini, administrator Anda dapat mengekspor tarball yang berisi `.VS Code-server` direktori untuk versi VS Code tertentu. Kemudian, administrator menggunakan skrip SageMaker AI Lifecycle Configuration (LCC) untuk menyalin dan mengekstrak tarball ke direktori home Anda (). `/home/sagemaker-user` Untuk informasi selengkapnya, lihat [Siapkan server dan ekstensi jarak jauh yang sudah dikemas sebelumnya (hanya Kode VS)](remote-access-remote-setup-vpc-subnets-without-internet-access.md#remote-access-remote-setup-vpc-subnets-without-internet-access-setup-pre-packaged-vs-code-remote-server-and-extensions).

**Petunjuk untuk menggunakan pra-pengemasan untuk server dan ekstensi jarak jauh VS Code Anda**

1. Instal VS Code di mesin lokal Anda

1. Saat Anda terhubung ke SageMaker ruang:
   + Gunakan profil Default untuk memastikan kompatibilitas dengan ekstensi pra-paket. Jika tidak, Anda harus menginstal ekstensi menggunakan file VSIX yang diunduh setelah terhubung ke ruang Studio.
   + Pilih skrip LCC khusus versi VS Code untuk dilampirkan ke spasi saat Anda meluncurkan spasi.

### Contoh penggunaan Dockerfile untuk pra-pengemasan server dan ekstensi jarak jauh VS Code Anda
<a name="remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions-example-dockerfile"></a>

Berikut ini adalah contoh Dockerfile untuk meluncurkan wadah lokal dengan server SSH pra-instal, jika tidak mungkin untuk membuat ruang dengan akses jarak jauh dan internet diaktifkan.

**catatan**  
Dalam contoh ini server SSH tidak memerlukan otentikasi dan hanya digunakan untuk mengekspor server jarak jauh VS Code.
Wadah harus dibangun dan dijalankan pada arsitektur x64.

```
FROM amazonlinux:2023

# Install OpenSSH server and required tools
RUN dnf install -y \
    openssh-server \
    shadow-utils \
    passwd \
    sudo \
    tar \
    gzip \
    && dnf clean all

# Create a user with no password
RUN useradd -m -s /bin/bash sagemaker-user && \
    passwd -d sagemaker-user

# Add sagemaker-user to sudoers via wheel group
RUN usermod -aG wheel sagemaker-user && \
    echo 'sagemaker-user ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/sagemaker-user && \
    chmod 440 /etc/sudoers.d/sagemaker-user

# Configure SSH to allow empty passwords and password auth
RUN sed -i 's/^#\?PermitEmptyPasswords .*/PermitEmptyPasswords yes/' /etc/ssh/sshd_config && \
    sed -i 's/^#\?PasswordAuthentication .*/PasswordAuthentication yes/' /etc/ssh/sshd_config

# Generate SSH host keys
RUN ssh-keygen -A

# Expose SSH port
EXPOSE 22

WORKDIR /home/sagemaker-user
USER sagemaker-user

# Start SSH server
CMD ["bash"]
```

Gunakan perintah berikut untuk membangun dan menjalankan wadah:

```
# Build the image
docker build . -t remote_server_export

# Run the container
docker run --rm -it -d \
  -v /tmp/remote_access/.VS Code-server:/home/sagemaker-user/.VS Code-server \
  -p 2222:22 \
  --name remote_server_export \
  remote_server_export
  
# change the permisson for the mounted folder
docker exec -i remote_server_export \
       bash -c 'sudo chown sagemaker-user:sagemaker-user ~/.VS Code-server'

# start the ssh server in the container 
docker exec -i remote_server_export bash -c 'sudo /usr/sbin/sshd -D &'
```

Connect menggunakan perintah berikut:

```
ssh sagemaker-user@localhost -p 2222
```

Sebelum wadah ini dapat dihubungkan, konfigurasikan yang berikut dalam `.ssh/config` file. Setelah itu Anda akan dapat melihat `remote_access_export` sebagai nama host di panel samping SSH jarak jauh saat menghubungkan. Contoh:

```
Host remote_access_export
  HostName localhost
  User=sagemaker-user
  Port 2222
  ForwardAgent yes
```

Arsipkan `/tmp/remote_access/.VS Code-server` dan ikuti langkah-langkah di Server dan ekstensi jarak jauh VS Code yang sudah dikemas sebelumnya untuk menghubungkan dan menginstal ekstensi. Setelah membuka ritsleting, pastikan `.VS Code-server` folder ditampilkan sebagai folder induk.

```
cd /tmp/remote_access/
sudo tar -czvf VS Code-server-with-extensions-for-1.100.2.tar.gz .VS Code-server
```

### Contoh skrip LCC (LCC-install-VS C ode-server-v 1.100.2)
<a name="remote-access-local-ide-setup-vpc-no-internet-pre-packaged-vs-code-remote-server-and-extensions-example-lcc"></a>

Berikut ini adalah contoh cara menginstal versi tertentu dari server jarak jauh VS Code.

```
#!/bin/bash

set -x

remote_server_file=VS Code-server-with-extensions-for-1.100.2.tar.gz

if [ ! -d "${HOME}/.VS Code-server" ]; then
    cd /tmp
    aws s3 cp s3://S3_BUCKET/remote_access/${remote_server_file} .
    tar -xzvf ${remote_server_file}
    mv .VS Code-server "${HOME}"
    rm ${remote_server_file}
else
    echo "${HOME}/.VS Code-server already exists, skipping download and install."
fi
```