• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

안녕하세요 ansible Auto_authorized key 등록하는 부분에서 에러가 났는데요.

21.06.22 01:37 작성 조회수 128

1

안녕하세요 !

먼저 저는 vagrent 환경을 사용하지 않고 vmware 환경에서 실습을 진행하고 있습니다.

버전은 전부 centos7을 사용했고요, 구성은 앤서블 코어 1대, 노드 2대 이렇게 작게 구성 했습니다.

ansible 코어에서 노드들을 컨트롤 할 때 비밀 번호를 입력하는 과정을 스킵하여 최대한 편리하게 사용하기 위해 rsa_public 키 값들을 노드들의 authorized_keys 에다가 전달하려하는 개념까지는 이해가 잘 됐습니다. 

플레이북 작성예제를 따라하여. 작성을 했는데 에러가 떴습니다. permission denied라는 에러가 떴습니다.

 

제가 작성한 파일은 이렇습니다.

제가 의심이 되는 부분은 마지막  lineintfile dest에 /root/.ssh 경로를 설정해서 그런것 같습니다. 

그래서 become: true 를 주고 해도 결과는 같았습니다.

다른 노드 pc들은 .ssh의 경로가 전부 /root/.ssh << 이렇게 돼 있어서 경로를 저렇게 넣었는데 이것이 문제가 되는걸까요?

.ssh의 파일을 최상위 디렉토리(/)로 옮기고 파일도 그것의 경로에 맞게 수정해봤지만 결과는 같았습니다. 

권한 문제인지, 경로문제인지 잘 모르겠습니다. ㅎㅎ 알려주시면 감사하겠습니다.

답변 2

·

답변을 작성해보세요.

0

become: true 은 root가 아니고, sudo 입니다. 이미지가 어떤 종류의 설정이 들어있는지도 역시 몰라서 sudoers 등을 보셔야 할 수도 있을꺼 같네요. 해결에 참고가 되실꺼 같아서 추가로 기입해 드립니다. 

0

안녕하세요 

강의에서 사용하는 user는 vagrant입니다. 

그래서 해당 경로에 known_hostsauthorized_key를 등록하는 것입니다. 

현재 내용으로는 어떤 유저로 앤서블을 실행하시는지 모르겠지만...아마도 그 유저는 리모트에 /root 디렉터리를 접근하는 권한이 없을 것 같네요. .ssh 디렉터리를 최상위로 옮기셨다는게 sshd의 config 파일을 수정하셨다는 의미일까요? 굉장히 일반적이지 않은데....

현재의 실습 환경은 제가 관리하는 영역이 아니라서 정확하게 답변하기는 어려우나, 현재 사용하는 유저에서  리모트 노드(앤서블 노드)에 접근권이 없다고 보시면 될 것 같습니다. ssh인 기본 설정을 수정하지 않으셨다면, ssh로 로그인 하고 동일한 작업을 직접 수행해서 되는지 판별해 보시면 좋을꺼 같습니다. 

이것이 생성되었다고 치고, 

이것을 ssh 리모트 로그인 한 상태에서 입력이 되는지 테스트요 

 

사용하시는 코드처럼 계정(현재 | 리모트)은 수정하셔야 할 것 같습니다. 

조훈 드림