원격 개발 팁과 요령
이 문서에서는 Visual Studio Code 원격 개발 확장 프로그램에 대한 문제 해결 팁과 요령을 다룹니다. 각 특정 확장을 설정하고 작업하는 방법에 대한 자세한 내용은 SSH, 컨테이너, WSL 문서를 참조하세요. 또는 소개용 튜토리얼을 시도하여 원격 환경에서 빠르게 실행할 수 있도록 도와주세요.
GitHub Codespaces에 대한 팁과 질문은 GitHub Codespaces 문서를 참조하세요.
SSH 팁
SSH는 강력하고 유연하지만, 이로 인해 설정 복잡성이 추가됩니다. 이 섹션에서는 다양한 환경에서 Remote - SSH 확장을 설정하고 실행하기 위한 몇 가지 팁과 요령을 포함합니다.
$EDITOR 변수 구성하기
macOS / Linux 원격 호스트의 경우, 이 코드를 셸 구성 파일(예: .bashrc
또는 .zshrc
)에 추가하세요.
if [ "$VSCODE_INJECTION" = "1" ]; then
export EDITOR="code --wait" # 또는 VS Code Insiders를 사용하는 경우 'code-insiders'
fi
Windows 호스트의 경우, 다음과 같은 Powershell 명령어를 사용하세요:
if ($env:VSCODE_INJECTION -eq "1") {
$env:EDITOR = "code --wait" # 또는 VS Code Insiders의 경우 'code-insiders'
}
이제 $EDITOR
변수를 사용하는 터미널 명령어(예: git commit
)를 실행하면 기본 터미널 기반 편집기(예: vim
또는 nano
) 대신 VS Code에서 파일이 열립니다.
키 기반 인증 구성하기
SSH 공개 키 인증은 로컬 "개인" 키와 SSH 호스트의 사용자 계정과 연결된 "공개" 키를 결합한 편리하고 높은 보안의 인증 방법입니다. 이 섹션에서는 이러한 키를 생성하고 호스트에 추가하는 방법을 안내합니다.
팁: Windows용 PuTTY는 지원되는 클라이 언트가 아니지만, PuTTYGen 키를 변환할 수 있습니다.
빠른 시작: SSH 키 사용하기
원격 호스트에 대한 SSH 키 기반 인증을 설정하려면 먼저 키 쌍을 생성한 다음 공개 키를 호스트에 복사합니다.
로컬 SSH 키 쌍 생성하기
로컬 머신에 SSH 키가 이미 있는지 확인하세요. 일반적으로 macOS / Linux에서는 ~/.ssh/id_ed25519.pub
에 위치하며, Windows에서는 사용자 프로필 폴더의 .ssh
디렉토리(예: C:\Users\your-user\.ssh\id_ed25519.pub
)에 있습니다.
키가 없는 경우, 로컬 터미널 / PowerShell에서 다음 명령어를 실행하여 SSH 키 쌍을 생성하세요:
ssh-keygen -t ed25519 -b 4096
팁:
ssh-keygen
이 없으신가요? 지원되는 SSH 클라이언트를 설치하세요.
개인 키 파일의 권한 제한하기
-
macOS / Linux의 경우, 필요한 경우 개인 키 경로를 바꿔서 다음 셸 명령어를 실행하세요:
chmod 400 ~/.ssh/id_ed25519
-
Windows의 경우, PowerShell에서 다음 명령어를 실행하여 사용자 이름에 대한 명시적 읽기 권한을 부여하세요:
icacls "privateKeyPath" /grant <username>:R
그런 다음 Windows 탐색기에서 개인 키 파일로 이동하여 마우스 오른쪽 버튼을 클릭하고 속성을 선택합니다. 보안 탭 > 고급 > 상속 사용 중지 > 이 객체에서 모든 상속된 권한 제거를 선택합니다.
macOS 또는 Linux 머신을 연결할 수 있도록 승인하기
다음 명령어 중 하나를 로컬 터미널 창에서 실행하여 사용자 및 호스트 이름을 적절히 바꿔 로컬 공개 키를 SSH 호스트에 복사하세요.
-
macOS 또는 Linux SSH 호스트에 연결하기:
export USER_AT_HOST="your-user-name-on-host@hostname"
export PUBKEYPATH="$HOME/.ssh/id_ed25519.pub"
ssh-copy-id -i "$PUBKEYPATH" "$USER_AT_HOST" -
Windows SSH 호스트에 연결하기:
-
호스트가 OpenSSH Server를 사용하고 사용자가 관리자 그룹에 속하는 경우:
export USER_AT_HOST="your-user-name-on-host@hostname"
export PUBKEYPATH="$HOME/.ssh/id_ed25519.pub"
ssh $USER_AT_HOST "powershell Add-Content -Force -Path \"\$Env:PROGRAMDATA\\ssh\\administrators_authorized_keys\" -Value '$(tr -d '\n\r' < "$PUBKEYPATH")'" -
그렇지 않은 경우:
export USER_AT_HOST="your-user-name-on-host@hostname"
export PUBKEYPATH="$HOME/.ssh/id_ed25519.pub"
ssh $USER_AT_HOST "powershell New-Item -Force -ItemType Directory -Path \"\$HOME\\.ssh\"; Add-Content -Force -Path \"\$HOME\\.ssh\\authorized_keys\" -Value '$(tr -d '\n\r' < "$PUBKEYPATH")'"SSH 호스트의 원격 사용자에 대한
.ssh
폴더의authorized_keys
파일이 본인 소유이며 다른 사용자가 접근할 수 없는지 확인하세요. 자세한 내용은 OpenSSH 위키를 참조하세요.
-
Windows 머신을 연결할 수 있도록 승인하기
다음 명령어 중 하나를 로컬 PowerShell 창에서 실행하여 사용자 및 호스트 이름을 적절히 바꿔 로컬 공개 키를 SSH 호스트에 복사하세요.
-
macOS 또는 Linux SSH 호스트에 연결하기:
$USER_AT_HOST="your-user-name-on-host@hostname"
$PUBKEYPATH="$HOME\.ssh\id_ed25519.pub"
$pubKey=(Get-Content "$PUBKEYPATH" | Out-String); ssh "$USER_AT_HOST" "mkdir -p ~/.ssh && chmod 700 ~/.ssh && echo '$\{pubKey\}
' >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
* **Windows** SSH 호스트에 연결하기:
* 호스트가 OpenSSH Server를 사용하고 사용자가 [관리자 그룹에 속하는 경우](https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_server_configuration#authorizedkeysfile):
```powershell
$USER_AT_HOST="your-user-name-on-host@hostname"
$PUBKEYPATH="$HOME\.ssh\id_ed25519.pub"
Get-Content "$PUBKEYPATH" | Out-String | ssh $USER_AT_HOST "powershell `"Add-Content -Force -Path `"`$Env:PROGRAMDATA\ssh\administrators_authorized_keys`" `""
-
그렇지 않은 경우:
$USER_AT_HOST="your-user-name-on-host@hostname"
$PUBKEYPATH="$HOME\.ssh\id_ed25519.pub"
Get-Content "$PUBKEYPATH" | Out-String | ssh $USER_AT_HOST "powershell `"New-Item -Force -ItemType Directory -Path `"`$HOME\.ssh`"; Add-Content -Force -Path `"`$HOME\.ssh\authorized_keys`" `""SSH 호스트의 원격 사용자에 대한
.ssh
폴더의authorized_keys
파일이 본인 소유이며 다른 사용자가 접근할 수 없는지 확인하세요. 자세한 내용은 OpenSSH 위키를 참조하세요.
전용 키로 보안 강화하기
모든 SSH 호스트에서 단일 SSH 키를 사용하는 것은 편리하지만, 누군가 개인 키에 접근하면 모든 호스트에 접근할 수 있게 됩니다. 개발 호스트에 대해 별도의 SSH 키를 생성하여 이를 방지할 수 있습니다. 다음 단계를 따르세요:
-
다른 파일에 별도의 SSH 키를 생성합니다.
macOS / Linux: 로컬 터미널에서 다음 명령어를 실행하세요:
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519-remote-ssh
Windows: 로컬 PowerShell에서 다음 명령어를 실행하세요:
ssh-keygen -t ed25519 -f "$HOME\.ssh\id_ed25519-remote-ssh"
-
SSH 호스트에서 키를 승인하기 위해 빠른 시작에서와 같은 단계를 따르되,
PUBKEYPATH
를id_ed25519-remote-ssh.pub
파일로 설정하세요. -
VS Code에서 Command Palette(
kbstyle(F1)
)에서 **Remote-SSH: Open Configuration File...**을 실행하고 SSH 구성 파일을 선택한 후 다음과 같이 호스트 항목을 추가(또는 수정)하세요:Host name-of-ssh-host-here
User your-user-name-on-host
HostName host-fqdn-or-ip-goes-here
IdentityFile ~/.ssh/id_ed25519-remote-ssh팁: Windows 경로에도
/
를 사용할 수 있습니다.\
를 사용하는 경우 두 개의 슬래시를 사용해야 합니다. 예를 들어,C:\\path\\to\\my\\id_ed25519
.
PuTTYGen에서 생성된 키 재사용하기
PuTTYGen을 사용하여 연결할 호스트에 대한 SSH 공개 키 인증을 설정한 경우, 다른 SSH 클라이언트에서 사용할 수 있도록 개인 키를 변환해야 합니다. 이를 위해:
-
로컬에서 PuTTYGen을 열고 변환할 개인 키를 로드합니다.
-
애플리케이션 메뉴에서 Conversions > Export OpenSSH key를 선택합니다. 변환된 키를 사용자 프로필 폴더의
.ssh
디렉토리 아래에 로컬 위치에 저장합니다(예:C:\Users\youruser\.ssh
). -
이 새로운 로컬 파일이 본인 소유이며 다른 사용자가 접근할 수 없는지 확인하세요.
-
VS Code에서 Command Palette(
kbstyle(F1)
)에서 **Remote-SSH: Open Configuration File...**을 실행하고 변경할 SSH 구성 파일을 선택한 후 다음과 같이 파일을 가리키는 호스트 항목을 추가(또는 수정)하세요:Host name-of-ssh-host-here
User your-user-name-on-host
HostName host-fqdn-or-ip-goes-here
IdentityFile ~/.ssh/exported-keyfile-from-putty