known_hosts 파일
ssh 접속
ECDSA 암호화 알고리즘 / fingerprint 지문(서명)
SHA256 방식으로 했을 때 이 지문이 맞는가? SHA256: 서버의 공개키 지문
패스워드 인증방식이 no로 설정되어 있기 때문에 Permission denied 로 접속이 되지 않는다
/etc/ssh/sshd_config 파일 수정을 해준다
/etc/ssh/ssh_config 클라이언트 설정파일
/etc/ssh/sshd_config 서버 설정파일
PasswordAuthentication no -> yes
모든 시스템에 패스워드 인증을 활성화
ssh 재시작
ssh [Account(사용자명)@] IP/hostname
ssh -l [Account(사용자명)] IP/hostname
사용자를 지정하지 않고 ssh로 로그인 할 경우
지금 시스템을 사용하고있는 사용자 (현재 로그인 된 사용자) 로 로그인 된다
사용자를 지정하고 로그인 했을 때 서버에 그 사용자가 없다면 로그인 되지 않는다
=똑같은 계정이 없으면 사용자로 지정하지 않고 로그인하는것은 불가능 하다
서버의 공개 키 지문이 맞는지 비교를 해야한다
비교를 하지 않고 yes를 하면 mitm( man in the middle) 공격을 당할 수 있다
ssh는 pki를 사용하지 않기 때문에 내가 접속하려는 대상의 시스템의 공개키를 검증할 수 있는 매커니즘이 없어서 사용자가 직접 검증해야한다
처음 접속할 때 fingerprint가 이상없음을 확인해 yes 를 하면 서버의 공개키를 known_hosts 목록에 추가한다. 두번째부터는 공개키가 known_hosts에 있는 확인하고 지문을 묻지 않는다
서버측에서는 네가지 알고리즘을 지원한다. 선택하여 사용하능하지만, 주로 ecdsa 라는 알고리즘이 기본 알고리즘을 사용한다.
공개키 형식 : [암호화 방식] [public key] [key를 만든 사람]
이것을 hash를 뜬것이 지문 (sha256)
ssh-keygen -l -f 공개키 ( -l list -f file)
공개키를 지정했을 때 지문을 확인 할 수 있다.
이 지문과 접속을했을때의 지문이 같으면 문제가 없다.
ssh-keyscan
퍼블릭 클라우드에서 인스턴스를 생성 할 때, 만들어져있는 VM이 아니기 때문에 해당되는 VM의 공개키를 미리 알 수 없다.
ssh-keyscan이라는 명령어를 사용하여 공개키를 알 수 있다.
known_hosts 파일을 생성하고 검증하기 위한 목적
리다이렉션을 이용하여 파일 만들기
지문 확인
key-scan 이용법
눈으로 직접 검증하는것이 아니라 이 파일을 known_hosts에 저장하여 시스템이 검증
-t 암호화 타입 지정
원하는 타입만 지정하여 known_hosts에 저장
known_hosts에 키가 있기 때문에 지문을 묻지 않는다.
host key checking 비활성화
모든 호스트에 대해 Key 확인을 하지 않는다.
인코딩
인코딩 유무를 /etc/ssh/ssh_config 에서 변경할 수 있다
'클라우드 > 앤서블(Ansible)' 카테고리의 다른 글
앤서블 Ansible 이란? / Ansible 용어 (0) | 2021.07.27 |
---|---|
앤서블 Ansible 설치 (0) | 2021.07.27 |
IaC 개요 (0) | 2021.07.27 |
su 와 sudo 차이점 / sudoers 파일 (0) | 2021.07.26 |
SSH ssh keypair 생성 / authorized_keys 파일 / AWS 에 public key 등록하기 (0) | 2021.07.26 |