람토리의 IT스토리

UNIX 패스워드 없이 SFTP 접속 하는 법 (FTP와 SFTP 차이) 본문

IT 정보/IT 기술

UNIX 패스워드 없이 SFTP 접속 하는 법 (FTP와 SFTP 차이)

람토리 2020. 1. 10. 21:58

패스워드 없이 SFTP 접속하는 스크립트

 

 

안녕하세요 람토리 입니다!!

요즘 회사에서 보안규정이 강화되면서 Server To Server 접속방식이 FTP -> SFTP 로 변경되게 되었는데요

자세한 가이드가 없어서 애를 많이 먹었어요 ㅠ_ㅠ...

 

혹시 저처럼 헤메시는 분들이 계실거 같아서 첫 포스팅은 이 내용으로 해 볼까 합니다!

 

* FTP vs SFTP 차이점

FTP : 기본 21번 포트 이용 SFTP : 기본 22번 포트 이용
파라미터로 패스워드 전송하여 자동인증방식 지원 파라미터로 패스워드 전송 불가능

로 핵심은 파라미터 전송 부분입니다.

SFTP는 파라미터로 패스워드 전송이 불가능하기 때문에, 프롬프트가 패스워드 입력을 기다립니다.

기업같이 Batch Shell 을 이용하여 자동 SFTP 파일 GET / PUT 이 일어난다면 곤란한 부분이죠 ㅠ_ㅠ...

 

* FTP 접속방식

adress='127.0.0.1'    # remote target server ip

id='ramtol'             # target user

password='ramtory' # target user login password

 

ftp -n $address << EOF

user $id $password     # 패스워드가 파라미터로 전송되어 자동로그인 가능

cd 타겟 서버 절대경로

lcd 로컬 서버 절대경로

put 파일이름

quit # quit = bye = exit

EOF

 

 

* SFTP 접속방식

SFTP는 위와같은 방식이 불가능하여,

사전에 From(=local) Server 와 Destination(=target) Server 사이에

특수 해시값으로 인증을 거쳐놓습니다.

두 서버만 알 수 있는 암호문자로 통행권을 미리 발급받아놓고, 자유롭게 통신하는 셈이죠.

 

1) From 서버의 SFTP를 실행할 계정에 ssh 인증키를 발급받아 놓습니다.

  $ ssh-keygetn -t rsa

 (엔터)xn번

▶From 서버계정 홈 디렉토리에 .ssh 디렉토리가 생기며 그 하위에 id_rsa.pub 이 발행됩니다.

 

2) id_rsa.pub 파일을 Destination Server에 등록

id_rsa.pub 에는 ssh 인증 해시값과 맨~~ 뒤에 From 서버의 계정@ip(또는 서버명) 값이 있습니다.

이 파일을 Destination 서버 접속할 계정 홈에 파일명을 authorized_keys 로 변경해서 등록합니다.

 

3) From 서버에서 한번 접속을 해 줍니다.

 $ sftp ramtol@127.0.0.1

 ▶From 서버 .ssh/known_hosts 에 Destination 서버 IP가 등록되며 마침내 자동인증이 가능해 집니다.

  * 최초 접속을 하지 않으면 Verification Error 발생.

  * 기존 인증키로 접속할 Destination IP가 변경된다면 known_hosts 파일에 등록된 IP를 삭제한 뒤 다시 위와같이 접속 해 준다.

 

4) Shell Script 수행

sftp -oPort=22 ramtol@127.0.0.1 << EOF  # -oPort 는 생략 가능. SFTP 포트가 22가 아닌경우 명시할것

cd 타겟서버 절대경로

lcd 로컬서버 절대경로

put 파일명

quit

EOF

 

 

 

저는 처음에 접속을 해주지 않아서 Verification 에러가 발생했어요 ㅠ...

원인 찾는데도 오래걸렸구요 ㅠ_ㅠ

이글을 보시는 분들은 빠르게 해결 하실 수 있으면 좋겠습니다 ♡

'IT 정보 > IT 기술' 카테고리의 다른 글

ABAP 중복된 행 지우기 (DELETE ADJACENT DUPLICATES)  (0) 2020.01.13
Comments