인프런 커뮤니티 질문&답변

우주인님의 프로필 이미지
우주인

작성한 질문수

Jenkins를 이용한 CI/CD Pipeline 구축

ssh-copy-id 에러 문의

작성

·

1.2K

0

저도 밑에 있는 분과 같은 증상인데요

ansible-server에서 ssh-copy-id 명령어 입력 후

윈도우 .ssh 폴더에 가서 authorized_key를 열어보면

ECHO가 설정되어 있습니다

라는 글이 한줄 추가 되어있습니다.

같은걸 반복해서 실행 할 경우 동일하게 같은 글이 한줄더 추가가 됩니다

(수동으로 직접 값을 넣어봐도 ping 오류는 납니다)

혹시 관련 사항 해결방법이 있을까요??

답변 4

1

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다.

docker 컨테이너로 기동하고 있는 ansible-server에서 Windows PC(HOST)로 ssh-copy-id 명령어는 정상적인 실행이 안될 수 있습니다. ansible-server에서 Windows PC의 Openssh SERVER에 접속하여 ansible 명령어를 실행하기 위해서는 아래와 같은 방법을 사용해 보시기 바랍니다.

우선 아래 링크를 참고하시어 Windows PC에 Openssh Server를 설치하셨다는 가정아래 설명드립니다. 리눅스 서버는 SSH를 통해서 ansible이 통신하는 반면에 Windows 서버에서는 winrm 이라는 리모트 매니져를 통해서 통신합니다.

  1. ansible-server에서 아래 명령어를 이용하여 pywinrm을 설치하도록 합니다.

    $ yum install python39 -> python이 설치 되어 있지 않았기 때문에 python 설치

    $ pip pywinrm -> pywinrm 설치

  2. ansible-server에서 /etc/ansible/hosts 파일에 (파일이 존재하지 않으면 생성) 아래 내용과 같이 windows 서버의 정보를 입력합니다. (user와 password는 Windows PC 로그인 할 때 사용하는 관리자 계정을 사용하십시오)

    [windows]
    192.168.0.11
    
    [windows:vars]
    ansible_password='관리자계정 암호'
    ansible_connection=winrm
    ansible_winrm_server_cert_validation=ignore
    ansible_user='관리자계정(ex, administrator)'
    ansible_port=5986
  3. Windows 서버에서 아래 명령어를 Powershell(관리자 모드)에서 실행합니다.

    $url = "https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"

    $file = "$env:temp\ConfigureRemotingForAnsible.ps1"

    (New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file)

    powershell.exe -ExecutionPolicy ByPass -File $file

     ** 위 URL은 https://github.com/AlbanAndrieu/ansible-windows/blob/master/files/ConfigureRemotingForAnsible.ps1 로 변경된 것 같습니다. 수정해서 사용하시기 바랍니다.

다음은 제가 테스트한 ansible-server의 hosts 파일의 내용과, Powershell 명려어 그리고 마지막으로ansible 명령어 입니다.

 

 

 

감사합니다.

이 상황까지는 해결하여서 ping - pong은 되는데,

local에 authorized_keys 파일에는 값이 빈 상태인데.. 어떻게 해결하나요?

ansible-server에서 ansible-playbook으로 접근하려고 하면 permission denied가 뜹니다.

 

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다.

윈도우 .ssh 폴더에 가서 authorized_key에 ECHO 문자열이 포함된 경우라면, ansible-server의 id_rsa.pub키 파일의 내용을 직접 복사하여 붙여넣기 하는 방법으로 authorized_keys 파일의 내용을 수정하시기 바랍니다.

감사합니다.

0

윈도우 사용자분들은 winrm https 사용가능하게 해주셔야 가능하네요..

https://github.com/AlbanAndrieu/ansible-windows/blob/master/files/ConfigureRemotingForAnsible.ps1

0

우주인님의 프로필 이미지
우주인
질문자

빠른 답변 감사드립니다

  1. $ pip pywinrm -> pywinrm 설치 하는 부분은

    • pip3 install --upgrade pip

    • pip install pywinrm 으로 설치를 했습니다

정상적으로 호출 되었습니다

image

감사합니다

우주인님의 프로필 이미지
우주인

작성한 질문수

질문하기