[유닉스] 파일 송신, 수신 (telnet, rlogin, ssh, ftp, rcp)


telnet

  • 가장 광범위하게 구현된 네트워킹 명령. 어떤 종류의 원격 시스템과도 접속할 수 있음
  • 형식 : telnet hostname 또는 IP_Address
  • 시스템에 로그인할 때와 똑같이 사용자 ID와 패스워드를 입력하기 위한 화면이 나타남
  • 원격 시스템의 계정을 가지고 로그인
  • 접속 종료 : exit 또는 logout
  • 호스트 이름을 주지 않으면 다음과 같이 telnet 프롬프트가 나타남
$ telnet
telnet>

  • SunOS에 guest라는 계정으로 원격 로그인을 시도한 예제
$ telnet
telnet> open css3.school.ac.kt
Trying 203.234.73.6...
Connected to cc.school.ac.kr (203.234.75.41)
Escape character is ‘^]’.
SunOS 5.7
login: guest
password: ******
Last login: Wed Nov 14 16:57:33 from cc.school.ac.kr
Sun Microsystems Inc. SunOS 5.7 Generic October 1998


rlogin

  • telnet과 같이 TCP/IP 프로토콜을 이용하는 원격 로그인 명령어
  • telnet과 다르게 현재 로그인을 시도하는 로컬 호스트(local host)의 사용자 ID와 같은 ID로 원격 호스트(remote host)에 접근을 시도. 패스워드 필요없음
  • 다른 사용자 이름으로 접속하고자 할 때 ‘-l’ 옵션 사용. 패스워드 필요
  • 형식 : rlogin –l [사용자 계정] [호스트 이름]
    • 원격 호스트와 로컬 호스트에 동일한 계정이 없을 경우 ‘-l’ 옵션 사용해 다른 사용자 계정으로 접속
    • 이 때 패스워드를 입력해야 접속이 가능
$ rlogin –l xenon101 cc.school.ac.kr
Password:
Last login: Tue Jun 23 17:50:09 from net
[xenon101@cc xenon101]$
  • rlogin을 하려면 원격 호스트가 로컬 호스트에게 접근 허가를 줘야 함
    • 원격 호스트는 “/etc/hosts.equiv” 또는 “$HOME/.rhosts” 파일을 읽어 목록에 들어 있는 로컬 호스트에게만 패스워드 없이 접근을 허용
    • rlogin을 잘못하면 시스템 해킹을 당할 수 있을 만큼 보안에 허점이 있으므로 잘 써야 함
$ vi /etc/hosts.equiv
css3.school.ac.kr
~
- INSERT---
“/etc/hosts.equiv” [New File]
  • 원격 호스트와 동일한 계정을 가진 로컬 호스트 사용자는 패스워드 입력 필요 없음
$ telnet css3.school.ac.kr
Trying 203.234.73.6...
Connected to cc.school.ac.kr (203.234.75.41)
Escape character is ‘^]’.
SunOS 5.7
login: student
password: ******
Last login: Wed Nov 14 16:57:33 from cc.school.ac.kr
Sun Microsystems Inc. SunOS 5.7 Generic October 1998
$
$ rlogin cc.school.ac.kr
Last login: Tue Jun 23 17:50:09 from css3
[guest@cc guest]$ hostname
cc.school.ac.kr
[guest@cc guest]$


ssh

  • Secure SHell의 약자로 telnet과 비슷한 기능을 함
  • telnet의 보안에 취약한 약점을 보완한 프로토콜
  • telnet이나 rlogin을 이용하여 원격으로 접속하면 계정이나 패스워드가 암호화되지 않고 바로 원격 시스템으로 전달됨
  • 최근에는 이를 암호화하는 ssh를 많이 사용함
  • putty와 같은 ssh 클라이언트 프로그램이 필요하고 원격 시스템에는 ssh server 데몬이 작동되어야 함
  • 원격 호스트에 사용자명으로 로그인을 시도. 패스워드를 입력해야 로그인에 성공
    • ssh 사용자명@호스트명
    • ssh –l 사용자명 호스트명
  • 로컬 호스트와 원격 호스트에 같은 이름의 사용자명을 사용할 때
    • ssh 호스트명
  • 현재 로컬 호스트 : css3.school.ac.kr
  • 현재 원격 호스트 : cc.school.ac.kr


ftp

  • 지정한 호스트와 파일을 주고 받음
  • 형식 : ftp 호스트명
  • 일반 텍스트 파일뿐 아니라, 이미지 파일이나 압축 파일 등도 송수신 가능

로그인명을 이용한 ftp 사용

  • 상대방 호스트명, 로그인명, 비밀번호를 알아야 함
$ ftp ftp.bora.net
Connected to ftp.bora.net
220 ProFTPD 1.2.7 Server (FTP.Bora.Net) [ftp2.bora.net]
Name (ftp.bora.net:ksshin):
  • 유명한 ftp 서버의 경우에는 anonymous 계정을 가지고 있음
  • 비밀번호는 계정과 동일한 이름, 자신의 e-mail 주소, 또는 Enter 키
$ ftp ftp.bora.net
Connected to ftp.bora.net
220 ProFTPD 1.2.7 Server (FTP.Bora.Net) [ftp2.bora.net]
Name (ftp.bora.net:ksshin): anonymous
331 Anonymous login ok, send your complete email address as
your password.
Password:
230 Anonymous access granted, restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
  • ftp 프롬프트인 “ftp>”에서 사용할 수 있는 명령어

  • pwd 명령의 사용

    • anonymous 계정을 이용하여 ftp로 접속한 후 pwd 명령 사용
ftp> pwd
257 “/” is current directory
ftp>
  • get 명령의 사용
    • local.cshrc 파일을 로컬 호스트로 가져오기
ftp> get local.cshrc
229 Entering Extended Passive Mode (|||45715|)
150 Opening BINARY mode data connecftion for local.cshrc (165 bytes)
226 Transfer completer
local: local.cshrc remote: local.cshrc
165 bytes received in 0.089 seconds (1.82 Kbytes/s)
ftp>
  • bye 명령의 사용
ftp> bye
221 Goodbye.
$


rcp

  • 두 호스트 간에 파일을 복사하는 명령
  • ftp와 달리 ID나 패스워드 입력 절차를 거치지 않고 바로 파일 복사 가능
  • 이 명령을 쓰기 위해 rlogin 부분의 로컬 호스트가 원격 호스트에 자동 로그인할 수 있도록 원격 호스트의 “/etc/hosts.equiv” 또는 “$HOME/.rhosts” 파일이 설정되어 있어야 함
  • 형식 : rcp [복사할 파일이름] [파일을 복사해 놓은 호스트 이름]:[파일 저장 경로]

  • telnet 명령으로 로컬 호스트에 접속
$ telnet css3.school.ac.kr
Trying 203.234.73.6...
Connected to cc.school.ac.kr (203.234.75.41)
Escape character is ‘^]’.
SunOS 5.7
login: guest
password: guest
Last login: Sat Nov 17 17:00:37 from cc.school.ac.kr
Sun Microsystems Inc. SunOS 5.7 Generic October 1998
$
$ rlogin cc.school.ac.kr
Last login: Sat Nov 17 17:09:28 from css3
[guest@cc guest]
  • rcp 명령으로 원격 호스트 “cc”의 파일들을 로컬 호스트 “css3”으로 복사
    • “LovingYou.mp3”는 복사할 파일이름
    • “css3.school.ac.kr”는 복사해 놓을 위치의 로컬 호스트이름
    • “:”는 복사해 놓은 디렉토리를 지정하지 않아도 기본으로 홈 디렉토리로 인식하도록 하는 기능
[guest@cc guest]$ ls
4NonBlondes-Whatsup.mp3 LovingYou.mp3 donmclean-vincent.mp3
[guest@cc guest]$ rcp LovingYou.mp3 css3.school.ac.kr: