[Unix] SFTP 패스워드 입력없이 접속하기 (스크립트)

프로필

2020. 1. 23. 0:10

이웃추가

안녕하세요 람토리 입니다!!(๑˃̵ᴗ˂̵)و

드디어 IT 첫 게시글 이네요 두근두근 ㅋㅋㅋㅋ

요즘 회사 보안규정이 강화되면서

Server To Server 접속방식이

FTP -> SFTP 로 변경되게 된 경우가 많죠?

저도 얼마전에 전환 작업을 했는데..

구글링에 의존하다보니 넘나 막막했던것 ㅠㅠ...

그래서 과정 공유 드립니다!!

* FTP vs SFTP 차이점

FTP : 기본 21번 포트

SFTP : 기본 22번 포트

파라미터로 패스워드 전송하여 자동인증방식 지원

파라미터로 패스워드 전송 불가능

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

SFTP는 파라미터로 패스워드 전송이 불가능하기 때문에,

프롬프트가 패스워드 입력을 기다립니다.

(이 부분을 expect 명령어를 이용해 echo 로 패스워드를 입력할 수도 있지만

그럼 스크립트가 너무 지저분해져서 하고싶지 않았어요 ㅋㅋㅋㅋ....)

Batch Shell 을 이용하여 자동 SFTP 커넥션을 맺는다면

타임아웃 각인 부분이네요 ^_^...

* FTP 접속방식

address='a.b.c.d' # destination server ip

id='test_user' # destination user

password='ramtol' # destination user pw

ftp -n $address << EOF

user $id $password

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

cd 데스티네이션 서버 절대경로

lcd 로컬 서버 절대경로

put 파일이름

quit # quit = bye = exit

EOF

* SFTP 접속방식

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

사전에 Local Server 와 Destination Server 사이에

먼저 인증키를 발급해서 공유해놓습니다.

두 서버만 알 수 있는 암호값으로 통행권을 미리 발급받아놓는거죠.

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

$ ssh-keygen -t rsa

(엔터)xn번

▶Local 서버계정 홈 디렉토리에 .ssh 디렉토리가 생기며

그 하위에 id_rsa.pub 이 발행됩니다.

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

id_rsa.pub 에는 ssh 인증 해시값과 맨~~ 뒤에

Local 서버의 계정@ip(또는 서버명) 값이 있습니다.

이 파일을 Destination 서버 접속할 계정 홈에 파일명을

authorized_keys 로 변경해서 등록합니다.

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

$ sftp $id@$address

이때는 프롬프트가 패스워드를 기다리기 때문에 패스워드를 입력해줍니다!

Are you sure to continue connecting 나오면 yes 입력 해 주시구요

▶Local 서버 .ssh/known_hosts 에 Destination 서버 IP가 등록되며

마침내 자동인증이 가능해 집니다.

[Permanently added x.x.x.x to the list of known hosts.] 문구가 뜸

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

* 기존 인증키로 접속할 Destination IP가 변경된다면

known_hosts 파일에 등록된 IP를 삭제한 뒤 다시 위와같이 접속 해 준다.

4) Shell Script 수행

sftp -oPort=22 $id@$address << EOF

# -oPort 는 생략 가능. SFTP 포트가 22가 아닌경우 명시할것

cd 데스티네이션 서버 절대경로

lcd 로컬서버 절대경로

put 파일명

quit

EOF

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

Host key verification failed.

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

이 글을 보시는 분들은 쉽게 해결하시면 좋겠어요~

#FTP #SFTP #SFTP_script #SFTP스크립트 #SFTP자동인증 #SFTP접속방법 #Unix_SFTP

람토리
람토리 일상·생각

깡총깡총 람토리의 즐거운 일상 ♬ 서이추 환영해요~ ٩( ᐛ )و