암호 로그인 없이 개인 키 설정

최근에 자동화 배치 발표를 하고 있다.ansible의 코드와 작업 흐름을 읽었습니다.
비밀번호 없이 로그인할 수 있는 작업이 필요합니다.기록하다
현재 두 대의 기계가 있는데, 한 대의 서버 A는 ansible를 설치하고, 한 대는 서버 B가 조작해야 한다.
프로젝트 폴더를 마음대로 만듭니다.
관리를 편리하게 하기 위해서 제가 이렇게 구분한 프로젝트는conf에 모든 설정을 넣습니다.hosts와 ansible를 포함합니다.cfg, 그리고 가장 바깥쪽으로 소프트 링크를 만듭니다.ansible.cfg의 우선 순위는 현재 디렉터리에서 가장 높을 것입니다.keys 안에 많은 서버의 개인 키가 저장되어 있습니다.주의는 개인 키다.ansible는 파라미코 라이브러리를 사용했습니다.
ansible.cfg 설정은 다음과 같습니다.주의 ssh_connection 아래 contrl_path=./ssh_keys, 지정하지 않으면 그룹-readable or world-readable andthus insecure 계속 보고합니다.
[defaults]
inventory       = ./conf/hosts
pull_interval   = 15
sudo_user       = root
transport       = paramiko
module_lang     = C
host_key_checking = False
sudo_exe        = sudo
# SSH timeout
timeout         = 30
#remote_user = root
#remote_port = 22
remote_tmp      = $HOME/.ansible/tmp

[ssh_connection]
# if True, make ansible use scp if the connection type is ssh, default is sftp
scp_if_ssh      = True
#sftp_batch_mode= False
control_path = ./ssh_keys

서버 B에 키 쌍을 생성하고,
#ssh root@ B
#ssh-keygen  ,  
# echo ~/.ssh/id_rsa.pub >> known_hosts  known_hosts
 ssh_config,  known_hosts,  ~/.authorized_keys .

서버 B의 개인 키를 ansible가 실행하는 서버 A의 ssh_로 돌려보내기keys에서 서버 B_로 이름 지정ip_.key
주ssh_keys 폴더는 700으로 권한을 부여받았습니다. 반드시 700이어야 합니다. 다른 것은 모두 오류를 보고할 것입니다.
hosts 파일에 서버를 지정합니다. 서버마다 한 줄씩 지정합니다.여기 테스트 한 줄만 쓸게요.[test_server] 10.0.1.5 ansible_ssh_private_key_file=ssh_keys/10.0.1.5.key ansible_ssh_user=root
이제 서버 A의 이 ansible 폴더로 돌아가서 테스트: ansible test_server -m shell -a ‘ls -la/etc/hostname’
10.0.1.5 | success | rc=0 >>
-rw-r--r-- 1 root root 15 Jun  4  2012 /etc/hostname

암호가 없습니다.

좋은 웹페이지 즐겨찾기