SSH 서버 연결
0. SSH란
SSH = Secure SHell는 네트워크 상에서 원격 서버와 안전하게 통신하기 위한 프로토콜이다. SSH는 암호화를 사용해 통신 데이터를 보호한다.
0.1. SSH의 주요 구성 요소
- SSH 클라이언트
: 원격 서버에 접속하기 위해 사용하는 프로그램.
명령어를 통해 서버에 접속하거나 파일을 전송한다.
예: ssh, scp, sftp.
- SSH 서버
: 원격 접속을 허용하는 시스템.
서버는 SSH 클라이언트로부터 접속 요청을 받고 인증을 처리한다.
- SSH 키
: 비밀번호 기반 인증 외에 공개 키 암호화 방식으로 인증을 수행한다. Private Key와 Public Key를 사용한다.
0.2. SSH 인증 방식
-
비밀번호 기반 인증
서버에 접속할 때 사용자 이름과 비밀번호를 입력하여 인증.
-
키 기반 인증
비밀번호 없이 키를 사용한 인증.
- Public Key: 서버에 저장.
- Private Key: 클라이언트가 소유.
0.3. SSH의 동작 원리
- 클라이언트-서버 통신 시작
: 클라이언트가 SSH 서버에 접속 요청을 보낸다.
- 서버 인증
: 서버는 자신의 신원을 증명하기 위해 고유한 Host Key를 클라이언트에 보낸다.
- 사용자 인증
: 클라이언트는 비밀번호나 개인 키를 사용하여 서버에 인증을 요청한다.
- 암호화된 세션 생성
: 인증이 완료되면 클라이언트와 서버 간의 모든 통신은 암호화된다.
1. SSH 키 생성 및 로그인
1.1. install WSL2
- Execute Windows PowerShell as an administrator.
- activate function [Microsoft-Windows-Subsystem-Linux].
dism.exe /online /enable-feature / featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
- activate function [VirualMachinePlatform].
dism.exe /online /enable-feature / featurename:VirtualMachinePlatform /all /norestart
- reboot the PC.
- Update WSL2 Linux kernel by clicking the link below.
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
- Install Ubuntu at the Microsoft Store (Ubuntu or Ubuntu LTS version).
- Execute the installed Ubuntu.
- Insert ID (your name; recommended).
1.2. Server SSH key generation
- Create " ssh" folder in the user's home directory (~).
mkdir .ssh
- Change "ssh" folder permissions to 700.
chmod 700 . ssh
- Go inside the ".ssh" folder and generate ssh keys.
(When the input prompt appears, continue typing ENTER.)
cd .ssh → ssh-keygen
- Change "id_rsa" permissions to 600.
chmod 600 id_rsa
- Give both keys ("id_rsa" & "id_rsa-pub") to a server administrator (using a USB) and ask her to create your server account.
id_rsa: private key → client
id_rsa.pub: public key → server
DO NOT SHARE YOUR PERSONAL KEYS WITH OTHERS.
SENDING KEYS VIA EMAIL OR MESSENGER IS PROHIBITED.
1.3. Server log-in via terminal
ssh -p 12150 {your _account_id}@{server_IP_address}
DO NOT DELETE YOUR PRIVATE KEY FILE.
IT IS NEEDED WHEN LOGGING IN TO THE SERVER.
2. 서버 로그인
2.1. FileZilla
- 이퀄라이저 아이콘 선택
새 사이트 클릭
→ 호스트에 서버 IP 주소, 포트에 포트 넘버 기입
→ 로그온 유형 키파일, 찾아보기
Linux>Ubuntu>home>{username}>.ssh>id_rsa 열기
2.2. VSCode
- private key 복사해서 홈 디렉토리에 붙여넣기
- config 파일 작성
Host *
ServerAliveInterval 30
ServerAliveCountMax 5
Host s235
HostName {서버 ip 주소}
User {username}
IdentityFile ~/.ssh/id_rsa
Port {포트 넘버}
- custom config 적용하기
REMOTE>SSH>톱니바퀴>Settings (specify a custom configuration file)
- config 파일 경로 붙여넣기
+) 랩실 규칙
- 가상환경은 홈 폴더에
- 데이터와 코드는 데이터 폴더에