원격 접속과 파일 전송
쉽게 말하면
멀리 있는 서버에 내 자리에서 접속하거나 파일을 주고받는 명령들이에요. ssh는 암호를 걸어 원격으로 명령을 치는 것, scp는 파일 복사, rsync는 바뀐 부분만 맞춰 보내기예요.
시험용 정의
원격 서버에 접속하거나 파일을 주고받는 명령들이다. ssh(암호화 원격 접속), scp·sftp(SSH 기반 파일 전송), rsync(바뀐 부분만 동기화), wget·curl(웹에서 내려받기)이 핵심이다.
비유로 이해하기
ssh는 암호 걸린 전화로 원격 비서에게 일을 시키는 것, scp는 그 전화선으로 서류를 봉투째 보내는 것, rsync는 바뀐 페이지만 골라 보내는 것이다.
자세히
원격 접속
| 명령 | 설명 |
|---|---|
| ssh user@host | 암호화된 원격 로그인 (22번 포트) |
| ssh -p 2222 user@host | 포트 지정 (소문자 p) |
| ssh -l kim host | 다른 계정으로 접속(= ssh kim@host) |
| ssh -X user@host | X11 포워딩 (원격 GUI 프로그램을 내 화면에) |
| ssh user@host 명령 | 로그인 없이 명령 하나만 실행 |
| ssh-keygen · ssh-copy-id | 키 쌍 생성 · 공개키를 서버의 ~/.ssh/authorized_keys에 등록 (비밀번호 없이 로그인) |
| telnet host [포트] | 평문 원격 접속(보안 취약). 요즘은 포트 열림 확인용으로 주로 씀(예: telnet www.kait.or.kr 443) |
| telnet -l kim host | 다른 계정으로 텔넷 접속. 서버 쪽 패키지 이름은 telnet-server |
파일 전송
| 명령 | 설명 |
|---|---|
| scp 파일 user@host:경로 | SSH로 복사. 디렉터리는 -r, 포트는 대문자 -P |
| sftp user@host | 대화형 암호화 파일 전송 (get, put, ls) |
| rsync -avz 원본/ user@host:대상/ | 차이만 전송. -a 속성 보존, -v 자세히, -z 압축, --delete 원본에 없는 파일 삭제 |
| ftp host | 대화형 FTP (평문). get 내려받기, put 올리기, mget·mput 여러 개, hash 전송 진행을 # 로 표시, bin·ascii 모드, bye 종료 |
웹에서 내려받기
| 명령 | 설명 |
|---|---|
| wget URL | 파일 내려받기. -O 저장 이름, -c 이어받기, -r 재귀 |
| curl URL | 다양한 프로토콜로 요청·응답 출력. -O 원격 파일명으로 저장, -o 이름 지정, -I 헤더만 |
시험에 이렇게 나와요
- SSH·Telnet에서 다른 계정으로 접속 →
-l 계정, SSH 포트 지정 →-p - FTP 명령: 다운로드 get, 업로드 put, 진행 상태 표시 hash
- 평문 전송이라 보안에 취약한 원격 접속 → Telnet, 암호화 → SSH
- 원격 서버의 특정 포트가 열렸는지 확인 →
telnet 호스트 포트
확인 문제
Q1. 원격 서버의 /var/log/messages 파일을 내 컴퓨터로 암호화된 채로 복사하고 싶다. 알맞은 명령은?
- cp server01:/var/log/messages .
- ftp server01
- telnet server01 /var/log/messages
- scp root@server01:/var/log/messages .
정답 보기
4번 scp root@server01:/var/log/messages .
scp는 SSH를 이용한 파일 복사라 전송 내용이 암호화된다. 형식은 scp [사용자@]호스트:원격경로 로컬경로. ftp와 telnet은 평문이고 cp는 로컬 복사다.
Q2. FTP 접속 중 로컬 파일을 서버로 올리는 명령은?
- put
- hash
- lcd
- get
정답 보기
1번 put
put(여러 개 mput). get은 내려받기.
Q3. ssh로 192.168.5.13에 kim 계정으로 접속하는 명령으로 옳은 것은?
- ssh -p kim 192.168.5.13
- ssh -l kim 192.168.5.13
- ssh -u kim 192.168.5.13
- ssh 192.168.5.13 kim
정답 보기
2번 ssh -l kim 192.168.5.13
ssh -l kim 192.168.5.13이다. kim@192.168.5.13으로 써도 같다. -p는 포트 번호를 지정하는 옵션이다.
Q4. FTP로 큰 파일을 받을 때 진행 상황을 # 기호로 보여 주게 하는 명령은?
- bin
- hash
- prompt
- status
정답 보기
2번 hash
hash다. 받는 동안 일정량마다 #을 찍어 진행 상황을 보여 준다. bin은 바이너리 전송 방식으로 바꾼다.
Q5. scp에서 원격 서버의 SSH 포트 2222를 지정하는 옵션은?
- -p 2222
- --port 2222
- -P 2222
- -o 2222
정답 보기
3번 -P 2222
scp는 대문자 -P. 소문자 -p는 시간·권한 보존. ssh는 소문자 -p.
Q6. 원격 GUI 프로그램 화면을 내 X 서버로 가져오는 ssh 옵션은?
- -X
- -L
- -G
- -D
정답 보기
1번 -X
-X(X11 포워딩)다. -L은 로컬 포트 포워딩, -D는 동적 포트 포워딩이다.
Q7. 변경된 부분만 전송해 디렉터리를 동기화하는 명령은?
- rsync
- scp
- sftp
- wget
정답 보기
1번 rsync
rsync다. 바뀐 부분만 보내 빠르게 동기화한다. scp는 매번 파일 전체를 복사한다.
헷갈리기 쉬운 O·X
sftp는 FTP 프로토콜에 SSL을 입힌 것으로 21번 포트를 쓴다.
정답 보기
X sftp는 SSH(22번) 기반이다. FTP+SSL/TLS는 FTPS.
ssh와 scp에서 포트 지정 옵션은 둘 다 소문자 -p다.
정답 보기
X ssh -p, scp -P. 자주 나오는 함정.
ssh-copy-id는 내 공개키를 서버의 ~/.ssh/authorized_keys에 추가해 준다.
정답 보기
O 이후 비밀번호 없이 키로 로그인.