목차
하나 , 환경
- 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 플러그인을 설치합니다.
세 가지 세부 단계
- Ubuntu에 SSH 서버를 설치합니다. 터미널을 열고 다음 명령을 순서대로 실행하여 OpenSSH 서버를 설치하고 SSH 서버를 시작합니다.
- sudo 적절한 업데이트
- sudo apt 설치 openssh 서버
- 서비스 sshd 재시작
- Windows에서 VS Code를 열고 "Remote - SSH" 확장을 설치합니다. 사이드바의 확장 보기에서 "원격 - SSH"를 검색하여 설치합니다.
- VS Code에서 명령 팔레트를 엽니다.
Ctrl+Shift+P
를 눌러(또는 VS Code의 왼쪽 하단에 있는 " 원격 창 열기 " 버튼을 클릭 ) 명령 팔레트를 열 수 있습니다 .- 명령 팔레트에서 " Remote-SSH: Connect to Host "를 입력하고 해당 옵션을 선택합니다.
- 팝업 메뉴에서 " SSH 호스트 구성 "을 선택합니다 .
- " ~/.ssh/config " 파일을 선택하거나 새 구성 파일을 만듭니다( 이 구성 파일에서 여러 Linux 서버 정보를 구성할 수 있음 ).
- 구성 파일에서 다음을 추가하여 hostname을 Ubuntu IP 주소 또는 호스트 이름으로 바꾸고 username을 Ubuntu의 사용자 이름으로 바꿉니다.
- 명령 패널로 돌아가서 " Remote-SSH: Connect to Host "를 다시 입력하고(또는 VS Code의 왼쪽 하단 모서리에 있는 " 원격 창 열기 " 버튼 클릭 ) 방금 구성한 연결을 선택합니다.
- 인증을 위해 Ubuntu 사용자 암호를 입력하지만 여기에서 OpenSSH 클라이언트가 Windows 환경에 설치되지 않았음을 나타내는 다음 오류가 발생합니다.
- PowerShell을 사용하여 OpenSSH를 설치하려면 관리자 권한으로 PowerShell을 실행합니다. OpenSSH를 사용할 수 있는지 확인하려면 다음 명령을 실행합니다.
- Get-WindowsCapability -온라인 | Where-개체 이름 -like 'OpenSSH*'
- SSH 클라이언트가 설치되어 있지 않으면 위의 내용이 다음과 같이 출력됩니다.
- 이름 : OpenSSH.Client~~~~0.0.1.0
- 상태 : 없음
- 그런 다음 다음 명령을 실행하여 OpenSSH 클라이언트를 설치합니다.
- Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
- OpenSSH 서버를 시작하고 구성하여 사용을 시작한 후 시작하려면 다음 명령을 실행하십시오.
sshd
- 시작 서비스 sshd
- 서비스 설정 -이름 sshd -StartupType '자동'
- 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'가 생성되어 존재합니다." }
- 그런 다음 VsCode 인터페이스의 왼쪽 열에서 " 원격 탐색기 " 를 클릭하고 확장된 "원격 Linux 연결 정보" 목록에서 다음과 같이 원격 연결을 만들기 위해 둘 중 하나를 마우스 오른쪽 단추로 클릭합니다.
- 성공적으로 연결되면 VS Code는 Ubuntu의 파일 시스템을 표시하는 새 창을 엽니다( "파일" > "폴더 열기"를 사용하여 원격 홈 디렉터리에서 폴더를 찾아보고 열 수 있음).
- 그런 다음 VS Code의 Ubuntu 환경에서 코드를 작성, 저장 및 실행할 수 있습니다.
- SSH 연결을 종료하려면 파일 > 원격 연결 닫기를 사용하여 로컬에서 VS Code 실행으로 돌아갈 수 있습니다.
4. 시크릿 - 무료 원격 접속
VSCode에서 Linux 시스템에 암호 없는 원격 로그인을 구현하려면 SSH 키 쌍을 사용할 수 있습니다. 자세한 단계는 다음과 같습니다.
- SSH 키 쌍 생성: 먼저 로컬 컴퓨터(예: Windows)에서 SSH 키 쌍을 생성해야 합니다. 터미널 또는 명령 프롬프트 창(예: PowerShell)을 열고 다음 명령을 실행합니다.
- ssh-keygen -t rsa
- 프롬프트에 따라 키 파일 및 기타 설정의 저장 위치와 비밀번호를 선택하십시오. 이렇게 하면 개인 키 파일(
id_rsa
)과 공개 키 파일(id_rsa.pub
)이 생성됩니다.- 공개 키 파일을 Linux 서버에 추가: 공개 키 파일을
~/.ssh/authorized_keys
원격 Linux 서버의 파일에 업로드합니다.C:/Users/86152/.ssh/id_rsa.pub
다음 명령을 사용하여 공개 키 파일을 서버에 복사합니다(내 공개 키 파일은 로컬 디렉터리에 있음 ).
- scp C:/Users/86152/.ssh/id_rsa.pub 사용자 이름@server_ip:~/
username
연결하려는 Linux 서버의 사용자 이름으로 바꾸고server_ip
서버의 IP 주소로 바꾸십시오. 이 명령은 공개 키 파일을 원격 서버의 홈 디렉토리에 복사합니다.- SSH를 사용하여 Linux 서버에 연결: 다음 명령과 로그인 암호를 사용하여 인증합니다.
- ssh 사용자 이름@server_ip
authorized_keys
파일 에 공개 키 추가~/.ssh/authorized_keys
: 다음 명령을 사용하여 공개 키 파일의 내용을 파일에 추가합니다 (.ssh
디렉토리가 존재하는지 확인하고 아직 존재하지 않는 경우 생성).
- 고양이 ~/id_rsa.pub >> ~/.ssh/authorized_keys
- 파일 권한 설정: 다음 명령을 사용하여 파일 권한 문제를 해결합니다. 이렇게 하면
.ssh
디렉토리에 700의 권한(소유자는 읽기, 쓰기 및 실행 권한이 있음)이 있고authorized_keys
파일의 권한은 600(소유자가 읽기 및 쓰기 권한이 있음)이 있는지 확인합니다.
- chmod 700 ~/.ssh
- chmod 600 ~/.ssh/authorized_keys
- 위의 단계를 완료하면 비밀번호를 입력하지 않고도 VsCode를 통해 Linux 서버에 연결할 수 있습니다.
다섯 , 참조 링크
여섯 , 추가 지식
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의 보안을 보장하는 강력한 오픈 소스 소프트웨어 제품군입니다. 원격 시스템 관리, 시스템 유지 관리 수행, 원격 협력, 백업 및 파일 전송과 같은 다양한 애플리케이션 시나리오에서 널리 사용됩니다.