CertNote/ 출퇴근 학습 노트
로드맵
KOEN
리눅스마스터 2급 · 2급리눅스마스터 2급
  • Week 1
    • 1.운영체제와 커널: 리눅스가 하는 일
    • 2.리눅스의 탄생: 유닉스에서 리누스까지
    • 3.자유 소프트웨어와 오픈소스: 라이선스가 정하는 것
    • 4.배포판: 커널과 도구를 하나로 묶어 파는 단위
    • 5.Week 1 종합 복습: 리눅스라는 이름의 정체
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
  • Week 8
  • Week 9
  • Week 10
    • 1.웹과 메일
    • 2.DNS: 이름과 주소
    • 3.원격 접속과 파일 전송
    • 4.파일 공유와 옛 인터넷 서비스
    • 5.Week 10 종합 복습: 인터넷 서비스 한 장
  • Week 11
리눅스마스터 1급 · 1급리눅스마스터 1급
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← 리눅스마스터 2급/Week 10/Day 3

기준: 리눅스마스터 2급 출제 기준·오류 제보

리눅스마스터 2급· AssociateWeek 10 · Day 3읽기 약 10분
핵심 정리
  • TELNET(23)은 평문이라 위험하고, SSH(22)는 암호화한다. 지금은 SSH만 쓴다.
  • TELNET과 SSH는 원격 접속이고, 파일 전송이 아니다. 이 구분이 시험에 나온다.
  • FTP는 포트 두 개 — 21번이 제어, 20번이 데이터다.
  • FTP에는 능동(active) 모드와 수동(passive) 모드가 있다.
  • SSH 기반 파일 전송은 scp 와 sftp 다.

Day 3 - 원격 접속과 파일 전송

원격 접속

서비스포트암호화
TELNET23없다 — 평문
SSH22있다
rlogin / rsh513 / 514없다 (옛 r 계열)

TELNET

  • 원격 컴퓨터에 접속해 명령을 실행하는 가장 오래된 방법이다.
  • 아이디와 비밀번호까지 평문으로 흐른다. 도청하면 그대로 보인다.
  • 지금은 거의 쓰지 않지만 포트 확인용으로는 쓰인다 — telnet 서버 80.
$ telnet 192.168.0.10 80
Trying 192.168.0.10...
Connected to 192.168.0.10.
Escape character is '^]'.
  • Connected가 나오면 그 포트가 열려 있다는 뜻이다. 닫혀 있으면 Connection refused가 나온다. TELNET은 상대 포트에 TCP 연결을 걸고 글자를 그대로 주고받을 뿐이라 이런 확인에 쓸 수 있다.
  • 빠져나올 때는 안내대로 Ctrl+] 를 누른 뒤 quit을 친다.

SSH

ssh user@192.168.0.10          # 접속
ssh -p 2222 user@server        # 포트 지정
ssh -X user@server             # 원격 GUI (X11 forwarding)
특징설명
암호화로그인 정보와 명령·결과가 전부 암호화된다
공개키 인증비밀번호 없이 키 쌍으로 인증할 수 있다
터널링다른 통신을 SSH 안으로 통과시킬 수 있다
구현OpenSSH (데몬 sshd)
ssh-keygen                     # 키 쌍 생성 (~/.ssh/id_rsa, id_rsa.pub)
ssh-copy-id user@server        # 공개키를 서버에 등록
  • 개인키는 내가 갖고, 공개키를 서버에 둔다. 서버의 ~/.ssh/authorized_keys에 공개키가 등록된다.
  • 개인키는 절대 남에게 주지 않는다. 권한도 600이어야 한다.

처음 접속할 때 나오는 질문

$ ssh alice@192.168.0.10
The authenticity of host '192.168.0.10 (192.168.0.10)' can't be established.
ED25519 key fingerprint is SHA256:(서버 키의 지문 문자열).
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.0.10' (ED25519) to the list of known hosts.
alice@192.168.0.10's password:
  • 이것은 오류가 아니라 "이 서버를 처음 보는데 믿어도 되느냐" 는 확인이다. yes라고 답하면 그 서버의 키가 내 컴퓨터의 ~/.ssh/known_hosts 에 기록되고 다음부터는 묻지 않는다.
  • 나중에 같은 주소의 서버 키가 달라져 있으면 SSH가 경고를 내고 접속을 막는다. 누군가 서버인 척 끼어든 경우를 막기 위해서다. 서버를 다시 설치했을 때도 같은 경고가 나온다.
  • user@를 생략하면 지금 로그인한 이름 그대로 접속을 시도한다. ssh -l alice 192.168.0.10처럼 -l로 이름을 줄 수도 있다.

SSH의 파일 — 어느 쪽 컴퓨터에 있나

파일있는 곳담는 것
~/.ssh/id_rsa접속하는 쪽내 개인키 — 밖으로 내보내지 않는다
~/.ssh/id_rsa.pub접속하는 쪽내 공개키 — 서버에 건네주는 것
~/.ssh/authorized_keys접속받는 쪽(서버)이 계정으로 들어와도 되는 공개키 목록
~/.ssh/known_hosts접속하는 쪽내가 접속해 본 서버들의 키
/etc/ssh/sshd_config서버SSH 서버(데몬) 설정
/etc/ssh/ssh_config접속하는 쪽SSH 클라이언트 설정
  • authorized_keys는 "들어와도 되는 사용자", known_hosts는 "내가 아는 서버" 다. 방향이 반대인 두 파일을 바꿔 놓은 보기가 나온다.
  • sshd_config와 ssh_config는 d 한 글자 차이다. d는 데몬(daemon)이므로 sshd_config가 서버 쪽이다. 접속 포트를 22에서 다른 번호로 바꾸거나 root의 직접 로그인을 막는 설정이 여기 들어 있다.
  • 키 파일 이름은 만든 키의 종류에 따라 달라진다. RSA면 id_rsa, ED25519면 id_ed25519다. 어느 종류를 기본으로 만드는지는 OpenSSH 버전에 따라 다르다. .pub이 붙은 쪽이 공개키라는 규칙은 같다.
  • 공개키 인증에서 개인키는 네트워크로 나가지 않는다. 서버는 등록된 공개키로 "이 사람이 짝이 되는 개인키를 가졌는지"만 확인한다. 비밀번호를 보내는 방식보다 안전한 이유다.

TELNET과 SSH는 "원격 접속"이지 "파일 전송"이 아니다. "파일을 주고받는 서비스로 거리가 먼 것은?"이라는 문제의 답이 TELNET 인 이유다.

파일 전송 — FTP

포트용도
21제어(control) — 명령을 주고받는다
20데이터(data) — 실제 파일이 오간다
  • 포트를 두 개 쓴다는 점이 FTP의 특징이자 시험 포인트다.

능동 모드와 수동 모드

   능동(Active)                       수동(Passive)
 
   클라이언트 ──21──► 서버            클라이언트 ──21──► 서버
   클라이언트 ◄─20─── 서버            클라이언트 ────► 서버
              (서버가 연결을 건다)              (클라이언트가 건다)
구분능동 모드수동 모드
데이터 연결서버가 클라이언트에게클라이언트가 서버에게
서버 포트20번임의의 높은 포트
방화벽클라이언트 방화벽에 막히기 쉽다잘 통과한다
  • 요즘 클라이언트는 대부분 방화벽 뒤에 있어 수동 모드가 기본이다.
  • 제어 연결(21번)은 두 모드 모두 클라이언트가 서버로 건다. 갈리는 것은 데이터 연결을 누가 거느냐 하나뿐이다.
  • 이름은 서버 입장에서 붙였다. 서버가 먼저 연결을 걸면 능동(active), 서버가 포트를 열어 놓고 기다리면 수동(passive)이다.
  • 20번 포트는 능동 모드에서만 쓰인다. 수동 모드의 데이터 연결은 서버가 알려 준 임의의 높은 번호로 맺어진다. "FTP 데이터 포트는?"이라고 조건 없이 물으면 20으로 답한다.
  • 능동 모드가 막히는 까닭은 밖에서 안으로 들어오는 연결이기 때문이다. 방화벽이나 공유기는 안에서 밖으로 나가는 연결은 통과시키지만, 밖에서 먼저 걸어 오는 연결은 기본적으로 막는다.

익명 FTP

  • 계정 없이 접속하는 공개 FTP다. 아이디는 anonymous, 비밀번호는 관례적으로 이메일 주소를 넣는다.
  • 공개 자료 배포에 쓰였다. anonymous라는 이름을 그대로 묻는다.

FTP 명령

명령하는 일
get파일 하나 받기
put파일 하나 보내기
mget / mput여러 개 받기 / 보내기
ls, cd, pwd원격 쪽 탐색
lcd로컬 디렉터리 변경
bin / ascii바이너리 / 텍스트 전송 모드
bye, quit종료

그림·압축 파일은 반드시 bin(바이너리) 모드로 받아야 한다. ascii 모드로 받으면 줄바꿈이 변환되어 파일이 깨진다.

  • FTP 서버 프로그램은 vsftpd, ProFTPD 가 대표적이다.
$ ftp 192.168.0.10
Connected to 192.168.0.10.
220 (vsFTPd 3.0.3)
Name (192.168.0.10:alice): anonymous
331 Please specify the password.
Password:
230 Login successful.
ftp> bin
200 Switching to Binary mode.
ftp> get backup.tar.gz
   …  (전송 과정 출력 생략)
226 Transfer complete.
ftp> bye
221 Goodbye.
  • ftp> 프롬프트가 떠 있는 동안은 셸이 아니라 FTP 프로그램 안이다. 여기서 치는 ls·cd는 서버 쪽 디렉터리에 작용한다. 내 컴퓨터 쪽을 옮기려면 lcd를 쓴다.
  • 서버가 돌려주는 세 자리 숫자는 응답 코드다. 2로 시작하면 성공(230 로그인 성공, 226 전송 완료), 5로 시작하면 실패(530 로그인 실패)다.
  • 방향은 내 컴퓨터 기준이다. get은 서버 → 나(내려받기), put은 나 → 서버(올리기)다.
명령하는 일
promptmget·mput 때 파일마다 묻는 확인을 켜고 끈다
hash전송 진행 상황을 #으로 표시
passive수동 모드를 켜고 끈다
delete / mkdir서버의 파일 삭제 / 디렉터리 생성
!명령FTP를 나가지 않고 내 컴퓨터의 셸 명령 실행
  • mget *.txt 처럼 여러 개를 받을 때는 m이 붙은 명령을 쓴다. get *.txt는 뜻대로 동작하지 않는다.
  • ascii 모드가 파일을 깨뜨리는 까닭은 운영체제마다 줄바꿈 문자가 달라 그것을 맞춰 주려고 내용을 고치기 때문이다. 텍스트에는 도움이 되지만 그림·압축 파일에서는 그 바이트가 줄바꿈이 아니라 데이터다.
  • TFTP는 이름만 닮은 다른 프로토콜이다. 로그인 절차가 없고 UDP 69번을 쓰는 단순한 파일 전송으로, 장비의 초기 부팅 파일을 내려받는 데 쓴다. FTP는 TCP다.

안전한 파일 전송

방법기반특징
scpSSH명령 한 줄로 복사
sftpSSHFTP처럼 대화형으로 쓴다
FTPSFTP + SSLFTP에 암호화를 덧붙인 것
rsyncSSH 등바뀐 부분만 전송 — 백업에 유리
scp file.txt user@server:/home/user/       # 보내기
scp user@server:/home/user/file.txt .      # 받기
scp -r 폴더 user@server:/home/user/        # 디렉터리째
sftp user@server                           # 대화형

sftp와 FTPS는 다르다. sftp는 SSH 기반이고, FTPS는 FTP에 SSL을 씌운 것이다. 이름이 비슷해 바꿔 놓은 보기가 나온다.

  • scp는 cp와 순서가 같다 — scp 원본 대상. 원격 쪽은 사용자@호스트:경로 로 적고, 콜론(:)이 원격이라는 표시다.
  • 콜론을 빠뜨리면 원격으로 가지 않는다. scp file.txt alice@server는 현재 디렉터리에 alice@server라는 이름의 파일을 하나 복사해 만들고 끝난다.
  • 포트 옵션의 대소문자가 다르다. ssh는 소문자 -p 2222, scp와 sftp는 대문자 -P 2222 다. scp의 소문자 -p는 수정 시각과 권한을 보존하라는 다른 옵션이다.
  • scp·sftp는 SSH의 22번 포트 하나로 다 된다. 포트를 둘 쓰는 FTP와 달리 방화벽에서 22번만 열면 접속과 파일 전송이 모두 가능하다.
  • rsync는 rsync -av 원본 대상 꼴로 쓴다. -a는 권한·시각 등을 그대로 보존, -v는 과정 표시, -z는 압축 전송이다. 두 번째 실행부터는 달라진 것만 보내므로 빠르다.
옛 도구 (평문)대신 쓰는 것 (SSH 기반)
telnet · rloginssh
rsh (원격에서 명령 한 줄 실행)ssh 호스트 명령
rcpscp
ftpsftp
  • r 계열 명령(rlogin·rsh·rcp)은 "믿는 호스트" 목록만으로 비밀번호 없이 들여보내던 방식이라 보안에 약했다. SSH가 이 셋을 모두 대체했다.

한 표로 가르기

서비스포트암호화하는 일
TELNET23없음원격 접속
SSH22있음원격 접속 (+ 파일 전송의 바탕)
FTP21 제어 / 20 데이터없음파일 전송
TFTP69 (UDP)없음단순 파일 전송, 인증 없음
SFTP · SCP22있음파일 전송
rlogin / rsh513 / 514없음원격 접속 / 원격 명령
  • 가르는 축은 둘이다 — 무엇을 하나(접속 / 전송) 와 암호화하나(평문 / 암호화). 문제가 어느 축으로 "다른 하나"를 묻는지 본다.
  • TELNET과 FTP는 둘 다 평문이지만 하는 일이 다르고, TELNET과 SSH는 하는 일이 같지만 암호화 여부가 다르다.
증상원인조치
Connection refused그 포트에서 기다리는 데몬이 없다서버에서 sshd가 떠 있는지, 포트 번호가 맞는지 확인
한참 멈췄다가 Connection timed out중간에서 막히거나 주소가 틀렸다방화벽, ping으로 경로 확인
Permission denied (publickey)서버의 authorized_keys에 내 공개키가 없다ssh-copy-id로 등록
개인키가 있는데도 키를 무시한다개인키 파일 권한이 너무 열려 있다chmod 600 ~/.ssh/id_rsa
REMOTE HOST IDENTIFICATION HAS CHANGEDknown_hosts에 적힌 서버 키와 다르다서버 교체가 맞는지 확인한 뒤 옛 줄 삭제
FTP 로그인은 되는데 ls에서 멈춘다능동 모드의 데이터 연결이 방화벽에 막혔다passive로 수동 모드 전환

그래픽 원격

방법설명
VNC화면 자체를 전송한다. 플랫폼 독립적
XRDP윈도의 원격 데스크톱(RDP)으로 접속
ssh -XX11 forwarding — 창 단위로 띄운다

내일은 여러 컴퓨터가 파일을 공유하는 NFS와 삼바를 다룬다.

📖 용어

  • TELNET : 암호화 없이 원격 접속하는 옛 프로토콜. 포트는 23이다.
  • SSH : 통신을 암호화하는 원격 접속 프로토콜. 포트는 22이며 구현은 OpenSSH다.
  • 공개키 인증 : 개인키와 공개키 쌍으로 비밀번호 없이 인증하는 방식.
  • FTP : 파일 전송 프로토콜. 제어에 21번, 데이터에 20번 포트를 쓴다.
  • 능동 / 수동 모드 : 데이터 연결을 서버가 여는 방식 / 클라이언트가 여는 방식.
  • 익명 FTP : anonymous 계정으로 접속하는 공개 FTP.
  • scp / sftp : SSH를 기반으로 파일을 복사하거나 전송하는 도구.
  • rsync : 변경된 부분만 전송해 효율적으로 동기화하는 도구.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

다음 중 TELNET과 비교한 SSH의 특징으로 알맞은 것은?

문제 2

다음 중 SSH를 기반으로 원격 시스템과 파일을 복사하는 명령으로 알맞은 것은?

문제 3

다음 중 FTP가 명령을 주고받는 제어 연결에 사용하는 포트 번호로 알맞은 것은?

문제 4

다음 중 익명 FTP에 접속할 때 사용하는 계정 이름으로 알맞은 것은?

문제 5

다음 중 파일을 주고받는 서비스와 거리가 먼 것으로 알맞은 것은?

이전DNS: 이름과 주소Week 10 · Day 2다음 파일 공유와 옛 인터넷 서비스Week 10 · Day 4

참고 공식 자료

  • 리눅스마스터 2급 공식 출제 기준(새 탭에서 열림)

이 페이지

  • 원격 접속
  • TELNET
  • SSH
  • 처음 접속할 때 나오는 질문
  • SSH의 파일 — 어느 쪽 컴퓨터에 있나
  • 파일 전송 — FTP
  • 능동 모드와 수동 모드
  • 익명 FTP
  • FTP 명령
  • 안전한 파일 전송
  • 한 표로 가르기
  • 그래픽 원격
  • 용어
  • 연습 문제