[구성 환경] Windows에서 VS Code는 가상 머신 Ubuntu에 원격으로 연결합니다.

목차

하나, 환경

두 가지 주요 단계

세 가지 세부 단계

4. 비밀 없는 원격 연결

다섯, 참조 링크

여섯, 추가 지식


하나 , 환경

  • Windows 11 Home 중국어 에디션
  • VS 코드 버전: 1.80.2
  • VMware® Workstation 16 Pro(버전: 16.1.2 빌드-17966106)
  • 우분투-22.04.2-데스크탑-amd64

가지 주요 단계

  • Windows에서 OpenSSH 설치
  • VS Code는 Remote-SSH 플러그인을 설치합니다.

가지 세부 단계

  1. Ubuntu에 SSH 서버를 설치합니다. 터미널을 열고 다음 명령을 순서대로 실행하여 OpenSSH 서버를 설치하고 SSH 서버를 시작합니다.
    1. sudo 적절한 업데이트
    2. sudo apt 설치 openssh 서버
    3. 서비스 sshd 재시작
  2. Windows에서 VS Code를 열고 "Remote - SSH" 확장을 설치합니다. 사이드바의 확장 보기에서 "원격 - SSH"를 검색하여 설치합니다.
  3. VS Code에서 명령 팔레트를 엽니다. Ctrl+Shift+P를 눌러(또는 VS Code의 왼쪽 하단에 있는 " 원격 창 열기 " 버튼을 클릭 ) 명령 팔레트를 열 수 있습니다  .
  4. 명령 팔레트에서 " Remote-SSH: Connect to Host "를 입력하고 해당 옵션을 선택합니다.
  5. 팝업 메뉴에서 " SSH 호스트 구성 "을 선택합니다 .
  6. " ~/.ssh/config " 파일을 선택하거나 새 구성 파일을 만듭니다( 이 구성 파일에서 여러 Linux 서버 정보를 구성할 수 있음 ).
  7. 구성 파일에서 다음을 추가하여 hostname을 Ubuntu IP 주소 또는 호스트 이름으로 바꾸고 username을 Ubuntu의 사용자 이름으로 바꿉니다.
  8. 명령 패널로 돌아가서 " Remote-SSH: Connect to Host "를 다시 입력하고(또는 VS Code의 왼쪽 하단 모서리에 있는 " 원격 창 열기 " 버튼 클릭 ) 방금 구성한 연결을 선택합니다.

  9. 인증을 위해 Ubuntu 사용자 암호를 입력하지만 여기에서 OpenSSH 클라이언트가 Windows 환경에 설치되지 않았음을 나타내는 다음 오류가 발생합니다.

  10. PowerShell을 사용하여 OpenSSH를 설치하려면 관리자 권한으로 PowerShell을 실행합니다. OpenSSH를 사용할 수 있는지 확인하려면 다음 명령을 실행합니다.
    1. Get-WindowsCapability -온라인 | Where-개체 이름 -like 'OpenSSH*'
  11. SSH 클라이언트가 설치되어 있지 않으면 위의 내용이 다음과 같이 출력됩니다.
    1. 이름 : OpenSSH.Client~~~~0.0.1.0
    2. 상태 : 없음
  12. 그런 다음 다음 명령을 실행하여 OpenSSH 클라이언트를 설치합니다.
    1. Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
  13. OpenSSH 서버를 시작하고 구성하여 사용을 시작한 후 시작하려면 다음 명령을 실행하십시오. sshd
    1. 시작 서비스 sshd
    2. 서비스 설정 -이름 sshd -StartupType '자동'
    3. if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) { Write-Output "방화벽 규칙 'OpenSSH-Server-In-TCP'가 존재하지 않음, 생성 중..." New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server(sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 } else { Write-Output "방화벽 규칙 'OpenSSH-Server-In-TCP'가 생성되어 존재합니다." }
  14. 그런 다음 VsCode 인터페이스의 왼쪽 열에서 " 원격 탐색기 " 를 클릭하고 확장된 "원격 Linux 연결 정보" 목록에서 다음과 같이 원격 연결을 만들기 위해 둘 중 하나를 마우스 오른쪽 단추로 클릭합니다.
  15. 성공적으로 연결되면 VS Code는 Ubuntu의 파일 시스템을 표시하는 새 창을 엽니다( "파일" > "폴더 열기"를 사용하여 원격 홈 디렉터리에서 폴더를 찾아보고 열 수 있음).
  16. 그런 다음 VS Code의 Ubuntu 환경에서 코드를 작성, 저장 및 실행할 수 있습니다.
  17. SSH 연결을 종료하려면 파일 > 원격 연결 닫기를 사용하여 로컬에서 VS Code 실행으로 돌아갈 수 있습니다.

4. 시크릿 - 무료 원격 접속

VSCode에서 Linux 시스템에 암호 없는 원격 로그인을 구현하려면 SSH 키 쌍을 사용할 수 있습니다. 자세한 단계는 다음과 같습니다.

  1. SSH 키 쌍 생성: 먼저 로컬 컴퓨터(예: Windows)에서 SSH 키 쌍을 생성해야 합니다. 터미널 또는 명령 프롬프트 창(예: PowerShell)을 열고 다음 명령을 실행합니다.
    1. ssh-keygen -t rsa
  2. 프롬프트에 따라 키 파일 및 기타 설정의 저장 위치와 비밀번호를 선택하십시오. 이렇게 하면 개인 키 파일( id_rsa)과 공개 키 파일( id_rsa.pub)이 생성됩니다.
  3. 공개 키 파일을 Linux 서버에 추가: 공개 키 파일을  ~/.ssh/authorized_keys 원격 Linux 서버의 파일에 업로드합니다. C:/Users/86152/.ssh/id_rsa.pub다음 명령을 사용하여 공개 키 파일을 서버에 복사합니다(내 공개 키 파일은 로컬 디렉터리에 있음  ).
    1. scp C:/Users/86152/.ssh/id_rsa.pub 사용자 이름@server_ip:~/
  4. username연결하려는 Linux 서버의 사용자 이름으로 바꾸고 server_ip서버의 IP 주소로 바꾸십시오. 이 명령은 공개 키 파일을 원격 서버의 홈 디렉토리에 복사합니다.
  5. SSH를 사용하여 Linux 서버에 연결: 다음 명령과 로그인 암호를 사용하여 인증합니다.
    1. ssh 사용자 이름@server_ip
  6. authorized_keys파일 에 공개 키 추가~/.ssh/authorized_keys : 다음 명령을 사용하여 공개 키 파일의 내용을 파일에 추가합니다 ( .ssh디렉토리가 존재하는지 확인하고 아직 존재하지 않는 경우 생성).
    1. 고양이 ~/id_rsa.pub >> ~/.ssh/authorized_keys
  7. 파일 권한 설정: 다음 명령을 사용하여 파일 권한 문제를 해결합니다. 이렇게 하면 .ssh디렉토리에 700의 권한(소유자는 읽기, 쓰기 및 실행 권한이 있음)이 있고 authorized_keys파일의 권한은 600(소유자가 읽기 및 쓰기 권한이 있음)이 있는지 확인합니다.
    1. chmod 700 ~/.ssh
    2. chmod 600 ~/.ssh/authorized_keys
  8. 위의 단계를 완료하면 비밀번호를 입력하지 않고도 VsCode를 통해 Linux 서버에 연결할 수 있습니다.

다섯 , 참조 링크

1. Windows에 OpenSSH 설치

2. SSH를 통한 원격 개발

3. 원격 개발 팁 및 요령

여섯 , 추가 지식

1.SSH(Secure Shell)는 원격 로그인 및 보안 파일 전송을 위한 네트워크 프로토콜입니다. 이는 안전하지 않은 네트워크 연결(예: 인터넷)을 통해 클라이언트와 원격 서버 간에 암호화된 보안 통신 수단을 제공합니다. 다음은 SSH에 대한 소개입니다.

  • 보안: SSH는 안전하지 않은 네트워크 연결을 통해 전송되는 데이터의 보안을 보장하는 암호화 프로토콜입니다. 공개 키 암호화 및 대칭 키 암호화를 사용하여 통신의 기밀성을 보호하고 데이터가 도청 및 변조되는 것을 방지합니다.
  • 원격 로그인: SSH의 가장 일반적인 용도는 원격 로그인입니다. SSH 클라이언트를 사용하여 사용자는 인터넷을 통해 원격 서버에 연결하고 서버에서 직접 작업하는 것처럼 원격 서버에서 명령을 실행하고 리소스에 액세스할 수 있습니다.
  • 파일 전송: SSH는 SCP(Secure Copy) 또는 SFTP(SSH File Transfer Protocol)라는 보안 파일 전송 메커니즘을 제공합니다. SCP 또는 SFTP를 사용하여 사용자는 로컬 컴퓨터와 원격 서버 간에 파일을 안전하게 전송할 수 있습니다.
  • 사용자 인증: SSH는 인증을 위해 공개 키 암호화를 사용합니다. SSH 연결을 설정할 때 클라이언트와 서버 간에 공개 키가 교환됩니다. 클라이언트는 한 쌍의 키(공개 키와 개인 키)를 생성하고 공개 키를 서버로 보냅니다. 서버는 공개 키를 특정 사용자와 연결하고 이를 사용하여 사용자를 인증합니다.
  • 포트 및 구성: SSH는 통신에 기본 TCP 포트 22를 사용합니다. 단, SSH 서버의 포트는 필요에 따라 변경할 수 있습니다. 또한 SSH 서버의 구성 파일은 서버에 상주하며 다양한 동작 및 제한 사항을 정의하는 데 사용할 수 있습니다.
  • 클라이언트 및 서버: SSH는 SSH 클라이언트와 SSH 서버로 구성됩니다. 클라이언트는 SSH 연결을 시작하고 서버에 명령과 요청을 보내는 데 사용됩니다. 서버는 클라이언트 연결을 수락하고 필요한 서비스(로그인, 파일 전송 등)를 제공합니다.
  • 공용 네트워크: SSH는 안전한 암호화 통신을 제공하므로 신뢰할 수 없는 공용 네트워크에서 원격 서버에 액세스하는 데 널리 사용됩니다. SSH를 통해 사용자는 민감한 데이터의 안전에 대한 걱정 없이 인터넷에서 원격 서버를 안전하게 사용할 수 있습니다.

요컨대 SSH는 안전한 원격 로그인 및 파일 전송 프로토콜로 암호화된 통신 및 인증 메커니즘을 제공하여 사용자가 안전하지 않은 네트워크에서 원격 시스템에 안전하게 액세스하고 작동할 수 있도록 합니다.


2. OpenSSH는 원격 로그인 및 보안 파일 전송 기능을 구현하는 오픈 소스 소프트웨어 제품군입니다. 이것은 SSH 프로토콜의 구현이며 네트워크를 통한 보안 원격 액세스 및 파일 전송을 위한 일련의 명령줄 도구 및 데몬을 제공합니다. 다음은 OpenSSH에 대한 소개입니다.

  • 기능: OpenSSH는 암호화된 통신 프로토콜을 통해 안전한 원격 로그인 및 파일 전송 기능을 제공합니다. 암호화, 공개 키 및 인증, 원격 명령 실행, 파일 전송(SCP 및 SFTP를 통한), 포트 포워딩 및 터널링과 같은 기능을 포함하여 SSH 프로토콜의 다양한 기능을 지원합니다.
  • 보안: OpenSSH는 안전한 통신 및 데이터 전송을 제공하기 위해 최선을 다하고 있습니다. 암호화 기술을 사용하여 통신 내용을 보호하고 전송 중에 데이터가 도청, 변조 또는 위조되지 않도록 합니다. 여기에는 대칭 키 알고리즘 및 공개 키 암호화를 사용하여 통신을 암호화하고 암호, 공개 키 및 인증서와 같은 다양한 인증 방법을 사용하여 사용자 인증을 보장하는 것이 포함됩니다.
  • 구성 요소: OpenSSH는 몇 가지 핵심 구성 요소로 구성됩니다. 그중 OpenSSH 클라이언트(ssh)는 SSH 연결을 시작하고 원격 호스트와 상호 작용하는 데 사용되며, OpenSSH 서버(sshd)는 원격 호스트에서 실행되며 SSH 연결 수락, 사용자 인증 수행, 원격 로그인 및 파일 전송 제공을 담당합니다. 키 쌍을 생성하고 관리하기 위한 ssh-keygen과 개인 키로 프록시 인증을 관리하기 위한 ssh-agent와 같은 다른 보조 도구가 있습니다.
  • 운영 체제 지원: OpenSSH는 다양한 Unix 계열 시스템(예: Linux, BSD 등) 및 Microsoft Windows 버전을 포함하여 다양한 운영 체제에서 실행할 수 있습니다. OpenSSH는 안전한 원격 로그인 및 파일 전송을 위해 이러한 시스템에 쉽게 설치 및 구성할 수 있습니다.
  • 구성 파일 및 사용자 지정: OpenSSH는 사용자가 특정 요구 사항에 맞게 사용자 지정할 수 있는 유연한 구성 옵션을 제공합니다. OpenSSH 구성 파일(예: sshd_config)을 수정하여 보안 정책, 액세스 제어 규칙, 포트 설정, 사용자 구성 등을 정의할 수 있습니다. 이를 통해 OpenSSH는 다양한 환경과 요구 사항에 적응할 수 있습니다.
  • 커뮤니티 지원 및 오픈 소스: OpenSSH는 오픈 소스 소프트웨어이며 해당 소스 코드는 공개적으로 사용할 수 있습니다. 이를 통해 사용자와 개발자는 코드를 자유롭게 검토, 수정 및 배포하고 개선에 기여할 수 있습니다. OpenSSH는 강력한 커뮤니티 지원과 광범위한 사용자 기반을 갖추고 있으므로 보안을 유지하면서 지속적으로 개선 및 업데이트할 수 있습니다.

전반적으로 OpenSSH는 안전한 원격 로그인 및 파일 전송 기능을 제공하고 암호화된 통신 프로토콜을 통해 데이터 및 사용자 ID의 보안을 보장하는 강력한 오픈 소스 소프트웨어 제품군입니다. 원격 시스템 관리, 시스템 유지 관리 수행, 원격 협력, 백업 및 파일 전송과 같은 다양한 애플리케이션 시나리오에서 널리 사용됩니다.

추천

출처blog.csdn.net/weixin_43729127/article/details/131877323