Linux

[ Linux ] FTP KEY를 이용하여 접속하기

Jerry_JH 2021. 11. 30. 23:36
728x90

오늘 업무를 하면서 깨달음을 크게 얻어서 오랜만에 기록

 

출처를 미리 밝힙니다.

https://angelhyun.tistory.com/entry/sftp-%EC%A0%91%EC%86%8D%EC%8B%9C-key-%EC%9D%B8%EC%A6%9D%EC%9C%BC%EB%A1%9C-%EC%A0%91%EC%86%8D%ED%95%98%EA%B8%B0-%ED%8C%A8%EC%8A%A4%EC%9B%8C%EB%93%9C-%EB%AF%B8%EC%9E%85%EB%A0%A5

 

sftp 접속시 key 인증으로 접속하기 (패스워드 미입력)

A 서버 sam 계정에서 B 서버 top 계정으로 sftp 접속시 패스워드 없이 접속 하려고 할때 다음과 같은 작업이 필요합니다. A 서버에서 접속하려는 계정으로 ssh key 가 존재해야합니다. 인증키 부터 생

angelhyun.tistory.com

 


현재 업무하고 있는 곳에서 외부기관으로 SFTP 접속이 필요했습니다.

 

외부기관의 보안정책 때문에 패스워드를 주기적으로 변경을 해주어야했고,

저희는 이번에 작업하고 빠져야하기 때문에 변경하는 방안을 꺼려했습니다.

 

그래서 SFTP접속할 때 패스워드대신 KEY를 접근하여 주기적으로 변경하는 것을 피했습니다.

 


현재 업무하고 있는 서버 : A

외부기관 서버 : B

 

먼저 A 서버에서 B 서버로 접속할 ssh key가 필요하기에 먼저 생성을 해줍니다.

 

$ ssh-keygen -t rsa -b 2048

-t = 암호화 방식

-b = 키 비트수 지정 / 최소 768비트가 필요하고 기본값은 2048

 

이렇게 생성을 하면 home디렉토리의 .ssh 폴더 안에 생성이 됩니다.

 

※ 참고로 홈디렉토리에서 ls,ll 명령어를 치면 숨기폴더로 안보이기 때문에 ls -a , ll -al 명령어를 사용해야 됩니다.

 

총 3개의 파일이 생성 되어 있을 것 입니다.

id_rsa id_rsa.pub known_hosts

 

여기서 id_rsa.pub 파일을 확인해야 됩니다.

.ssh 폴더로 경로 이동해서 해당 명령어를 사용합니다. (cat : 파일 내용 출력)

$ cat id_rsa.pub

이러면 key값이 나오게 됩니다. 

ssh-rsa AAAASDSADIOJQWDMASDHIASDQWIOEOI++askdjASKDJadklasjdASKDJVXCMaskd+asdjQQWD@root

이 key값을 복사합니다. (@root 까지 모두 다)

 


다음 외부기관 서버인 B로 이동해서 home 디렉토리의 .ssh 폴더로 이동합니다.

그리고 authorized_keys 파일에 아까 복사한 KEY값을 복사해서 넣어둡니다.

( 만약 .ssh랑 authorized_keys 파일이 없으면 home 디렉토리 경로에 만들면 됩니다. )

 

만드는 명령어

$ vi authorized_keys

이러면 $모양에서 파일입력창으로 변경됩니다.

아까 복사한 key값 붙여넣기하고 esc 누르고 : 누르면 마지막행으로 이동합니다.

그리고 wq를 하면 저장 후 종료가 됩니다. (저장안하고 종료하고 싶으면 q)

 

만약 잘못저장해서 수정하고 싶으면 vi 파일이름 명령어 다시 입력 후

해당 위치로 이동한 후 수정해서 다시 저장하면 됩니다. (단 vi명령어를 사용)

 

[위치 이동]

k - 위로 

j - 아래로

l - 오른쪽 (L)

h - 왼쪽

 

[삽입] (삽입모드로 진입하게 됩니다. 빠져나올때는 esc)

i - 현재 커서 위치에 삽입

a - 현재 커서 다음위치에 삽입

 

[삭제]

dd - 커서 위치한 곳 한 줄 삭제 

x - 커서 위치한 곳의 글자 1개 삭제

u - 방금 한 명령 취소 (ctrl+z랑 같은 개념)

 

이거 말고도 많은 명령어가 있으니 구글링하면 됩니다.


 

이렇게 까지 해서 A에서 접속을 시도하면 B서버로 패스워드없이 바로 접속이 가능합니다.

 

728x90