본문 바로가기
네트워크+보안

ssh 암호화 접속 (공개키, 대칭키)

by Nirah 2022. 11. 18.

SSH +ID +PASS 로 접속 하는 것이 목표

ssh +SSL (RSA: 공개키 +개인키)

 

암호화

 

1. 대칭키

암호화키 = 복호화키

키가 노출

사용자가 늘어날 수록 키 보관 및 키 전송

 

2. 공개키

암호화키 = 복호화키

공개키         개인키       100->100key

네트워크 상에 공개 해놓은 공개키를 이용해서 암호화 전송

개인키를 암호화된  Data 를 복호화 2key

클라우드 등에서 개인키를 제공한 뒤에 그 키는 서버가 재발급 불가능. (개인만이 관리가능)

 

 

 

Host PC cmd 창에 

# ssh-keygen 이라고 쳐서 키를 생성한다.

아래와 같이 위치 등을 지정할 수 있다. 

 

 

위치는 여기있다.

 

id_ rsa가 개인키다. 이걸 개인이 보관하다가 공개키가 있는 곳에 열쇠마냥 들이 대고 접속하는 것이다.

 

id_ rsa.pub는 공개키다. 접속처의 자물쇠 역할을 한다.

공개키는 띄어쓰기가 딱 한곳만 존재해야 한다. 그 뒷 부분은 필요가 없다는 뜻이니 제거해 준다.

이렇게.

 

id_rsa.pub를 로그인 하고 싶은 사용자의 리눅스 서버에 올려야 한다.

cmd

# scp .ssh\id_rsa.pub root@10.0.0.1:\root\.ssh\

 

 

 

이제 리눅스 서버로 들어가서 ssh 설정 파일을 만져보자.

 

# vi /etc/ssh/sshd_config 

 

 

13줄~15줄  SElinux의 포트를 변경하고자 하면 SElinux쪽에도 이 변경을 적용해줘야한다.

그 양식은 15줄에 있다.

17줄 포트 변경 가능

( /etc/services 에 이미 서비스와 포트가 함께 지정되어 있다.

뻔한 22번 포트 이외 지정한 포트를 사용해서 외부 침입을 방어하는 것이 보안상 좋다. 늘 백도어 주의)

 

19줄 아이피 지정

0.0.0.0 은 모든 ip에 대해 오픈이란 뜻이 아니라 본 서버가 갖고있는 ip에 한해서라는 것을 기억하자.

특정 사설망 안에서만  ssh 를 서비스 하려면 이부분을 수정하면 된다.

38줄 주석 제거 해서 루트로 로그인 허용 (쉬운 실습을 위해)

원래는 보안상 막아놓는다.

43줄 퍼블릭 키를 허용한다.

이 곳을 주석 처리를 해도 서비스별 설정에서 서비스별로 pubkey 적용 여부를 별도 설정할수 있다.

 

 

47줄 여기에 키 위치 지정

반드시 공개키 이름은 저렇게 하얀색 글씨로 정해져 있다.

추가 하려면 한칸 띄고 그 옆에 두번째 키를 추가 가능하다.

오타 내지 말 것.


63줄 NO 해서 패스워드 방식이 아닌 키 방식으로 로그인을 하게 만들 것이다.

systemctl restart sshd

 

 

다음과 같이 key없이 ssh접속을 하면 접근이 거부된다.

cmd

# ssh root@10.0.0.1

 

 

xshell 로 새로 터미널을 열면 다음과 같이 새롭게 인증 창이 뜬다.

 

 

아까 생성한 공개키 id_rsa.pub를 설정 파일에서 지정한 이름으로 바꿔준다.

# mv .ssh/id_rsa.pub .ssh/authorized_keys

(아니면 이런 이름 바꾸기 과정 없이 처음 cmd에서 넘길때

# scp .ssh\id_rsa.pub root@10.0.0.3:\root\.ssh\authorized_keys

이렇게 넘기면 이름을 바꿀 필요가 없으니 좋다.)

 

cmd

다시 접속 해본다. 접속이 된다.

 

xshell은 ssh 접속하려면 퍼블릭 키로 로그인 하겠다는 옵션을 채크 해줘야 한다.

그리고 접속 시 찾아보기 버튼을 눌러 아까 id_rsa 있던 폴더 위치에서 개인키 파일을 선택해줘야 한다.

그럼  xshell 접속 완료

 

 

 

 

아래는 cmd로 ssh rsa 접속 해본것.

-i 옵션을 써야지 passwd 접속 방식으로 들어가 지지 않는다.

여기서 자기가 쓸 개인키의 이름과 위치를 지정해 줄 수 있다.

(개인키-공개키 세트가 여러개면 각각 이름이 달라야 하는데, 이때 개인키 이름은 접속자가 지정해 준다.)

.ssh 아래에 있는 id_rsa 라고 지정해서 개인키를 들이밀어본다. 

 

# ssh -i .ssh/id_rsa root@10.0.0.1

 

 

 

 

<< 실습 >>

 

 아래와 같이 VMware를 구성할 것이다. 머신 4대에 접속하는 그림은 다음과 같다.

VM 게이트웨이쪽에 있는 공개키의 이름은authorized_keys 다.

개인 키의 이름은 id_rsa이다

서버는 퍼블릭 키와 개인 키를 다 갖고 있다.

Private (600)은 권한을 600으로 준다는 뜻. id_rsa에 chmod 600을 입력해 줘야 상대방이 읽어들일 수가 있어서 그렇다.

10.0.0.0 대로는 사용자가 머신 1~3에 직접 접속하는 것이고, (빨간 대칭키 검증)

보라색 대칭키의 검증은 Porxy 머신에서 머신 1에 172.16.0.0 대로 접속해 보면 되는 것이다.

 

방법은

cmd창에서 했듯이 linux에서도 똑같이 대칭키를 생성할 수 있고 scp도 쓸 수 있다.

그리고 ssh 설정 파일에서 키의 이름을 지정해 줄 수 있으니 Proxy 서버와 CentOS7-1에

두가지 대칭키가 동시 존재해도 이름을 적절히 맞게 바꿔주자.

 

cmd

ssh -i .ssh/id_rsa root@10.0.0.1

'네트워크+보안' 카테고리의 다른 글

cisco 라우터 작동 구조  (0) 2022.11.24
Metric 값 변경, VMware 이중 게이트웨이  (2) 2022.11.22
Hex Editor (이미지 재구성)  (0) 2022.11.15
user-agent  (0) 2022.11.14
port  (1) 2022.11.09