Ansible study 중 몰랐던 부분에 대한 Linux study

Doveloper·2022년 6월 2일
1

Linux

목록 보기
5/5
post-thumbnail

2021-04-12 epel-release, ssh-copy-id, et cetra


ANSIBLE

open source sw로 provisioning, 구성 관리 등을 자동화시켜주는 tool.

진영씨께서 ANSIBLE을 사용하여 jenkins server 구축한 경험을 바탕으로 study를 진행해주심.

! 추후에 공부해볼 topics

  • epel-release
  • ssh keygen
  • ssh copy id
  • .ssh 하위 3가지 directory

epel-release

Extra Packages for Enterprise Linux 라는 EPEL은 Fedora project 에서 제공되는 저장소로 각종 package의 최신 version을 제공하는 community 기반의 저장소. Ansible 과 같은 SW package들이 epel 저장소에 존재한다.

EPEL 설치 - yum install epel-release

이후 yum install ansible 의 명령으로 epel 저장소에 존재하는 ansible sw 패키지를 설치가능.

EPEL 제거
rpm -qa | grep epel로 설치된epel-release package 확인 후, rpm -ev epel-release-버전으로 제거.

.ssh

home directory 하위에 .ssh directory에는 다음과 같은 파일들이 존재한다.

이 중 만약 id_rsa, id_rsa.pub 의 파일들이 존재하지 않는다면, ssh keygen을 통해 생성가능.
ssh-keygen -t rsa는 .ssh 하위에 rsa 암호화 방식의 공개키 - 개인키 한 쌍을 만들어낸다.

ssh로 모르는 host에 접속을 시도할 때, 최초 1회 이와 같은 문구가 뜬다.

이 때, yes를 입력하면 .ssh/known_hosts 에 등록되며 호스트 key 값을 등록하게 된다.

ssh-keyscan

host 수가 적지 않을 경우, ssh 접속을 하기 위해 일일이 yes/no 를 체크하기 번거롭다면, host IP들을 미리 등록할 수 있다.

  1. 다음과 같이 hostlist 파일 생성
192.168.1.131
192.168.~~~
blah blah~
  1. ssh-keyscan -t rsa -f hostlist >> ~/.ssh/known_hosts 입력.

또는 hostlist 파일 없이 그냥 ssh-keyscan -t rsa <Remote Server IP address> >> ~/.ssh/known_hosts 로도 keyscan 가능하다.

이렇게 하면, ssh로 접속하려고 하는 Remote Server 의 /etc/ssh/ssh_host_rsa_key.pub (계정에 종속적이지 않은 host자체의 rsa공개키) 를 복사하여 자신의 home directory 밑 .ssh/knwon_hosts 파일에 복사한다.(append)

따라서 ssh-keyscan을 이용하는 것도 knwon_hosts 에 결국 등록되는 것이며 원격 node의 host rsa 공개키를 가져와 등록하는 방식이다.

ssh의 StrictHostKeyChecking = no option

다음 command를 이용하여 host접속 시 yes/no 를 물어보지 않고 바로 추가하며 접속할 수 있다.
ssh -o StrictHostKeyChecking=no <IP address>

.ssh/config 설정 변경

.ssh/config에 다음 내용 추가.

Host *
    StrictHostKeyChecking no

authorized_keys

authorized_keys는 약간 다른 내용이다.
내가 접속하려는 Remote server에 ~/.ssh/authorized_keys 를 생성하고 나(Local host)의 ~/.ssh/id_rsa.pub 파일 내용을 복사해 넣으면, Local host 계정의 rsa 공개키가 Remote server에 복사되어 들어가며
Remote server로 ssh접속을 할 때, Password 입력 없이 들어갈 수 있다. 이는 계정 login 시, Username/Passwd 방식으로 확인하는 것이 아닌,
rsa 공개키/개인키 방식으로 확인하게 되므로 password가 필요없게 된다.

당연하게도 이와 같이 public key 복사 시, 수작업으로 복붙해도 되지만, scp를 이용해도 가능하다.

authorized_keys는 ssh-keyscan과 달리 host에 대한 rsa 공개키를 복사하는 것이 아닌, 계정에 대한 rsa 공개키를 복사하는 것임을 주의하자.

ssh-copy-id

ssh-copy-id 는 ssh로 접속하려고 하는 Remote server의 Host 공개키를 가져와 나의 LocalHost ~/.ssh/knwon_hosts 파일에 저장한다. (단, 이 때 공개키는 rsa방식이 아닌 ECDSA-SHA2 방식의 공개키임.)

따라서 이와 같이 ssh-copy-id <Remote Server IP address> 를 입력하면 known_hosts 에 등록되고 ssh 접속 시 yes/no 를 묻지 않게 된다.

ssh-keygen

ssh-keygen을 이용하면 rsa 공개키/개인키 한 쌍을 생성할 수 있다. 생성 후 ~/.ssh/ 하위에 id_rsa(개인키), id_rsa.pub(공개키)의 이름으로 저장된다.
단, 이미 공개키/개인키 쌍이 존재하는 경우 overwirte(덮어쓰기) 할 것인지 물어보고 overwirte한 경우엔
이전 공개키를 등록해두었던 Remote Server 와의 접속은 더 이상 불가능해진다. (다시 등록해야 한다.)

profile
Hungry Developer

1개의 댓글

comment-user-thumbnail
2022년 7월 7일

팬이에요!

답글 달기