
이러한 서버에서 작업을 수행할 때 비밀번호를 입력하지 않으려면 SSH 인증서를 원격 서버에 업로드해야 합니다.
ssh-copy-id CptBartender@remote
이제... 해당 인증서를 400개 이상의 서버에 업로드해야 하며 비밀번호를 여러 번 입력/붙여넣지 않는 방법을 찾으려고 노력 중입니다.
질문: Windows에서 MinGW를 사용하여 이를 어떻게 자동화할 수 있습니까? Cygwin은 지옥의 거대한 기업 방화벽 뒤에 있는 것처럼 보이기 때문에 선택 사항이 아닐 가능성이 높습니다.
지금까지 나는:
- 모든 원격을 반복하는 스크립트를 작성했지만 모든 원격에 대해 비밀번호를 묻습니다.
yes
아무 소용없이 비밀번호를 전달하려고 시도했습니다.- 에 대해 읽었
expect
지만 MinGW에서 작동하게 하는 방법을 찾지 못했습니다. - 읽어보기
sshpass
- 같은expect
시도해 보았지만 AutoIt
더 좋은 방법이 있을 것입니다...
답변1
PuTTY는 plink
암호를 명령줄 매개변수로 받아들일 수 있습니다. 와 직접적으로 동등한 것은 없지만 ssh-copy-id
수동으로 명령을 실행하는 등 쉽게 스크립트로 작성할 수 있습니다.
plink foo@bar -pw baz "mkdir -p ~/.ssh && echo 'ssh-ed25519 AAAA...' >> ~/.ssh/authorized_keys"
...또는 pscp
.
또한 expect
Windows에서 작동하지 않는다면 400개의 Linux 서버 중 하나에서 실행할 수 있을까요?
(또한 숫자가 주어지면 LDAP에서 키를 가져오거나 AD/Kerberos를 사용해야 할 수도 있습니다. 최신 OpenSSH 버전에는 더 이상 타사 패치가 필요 없이 LDAP 통합을 위한 후크가 있습니다.)
답변2
위에서 언급한 대로 Putty plink 도구를 찾을 수 있습니다. 또는 나중에 Puppet, Ansible 또는 Chef와 같은 구성 관리 시스템 중 하나를 사용하는 것을 고려해 볼 수도 있습니다. 이들 중 하나를 사용하여 즉시 모든 서버에 일부 인증서를 추가할 수 있습니다.
서버 번호를 찾고 있는 중이라면 진지하게 생각해 보아야 할 것 같습니다. 사용자 관리, 파일 및 디렉터리 관리, 소프트웨어를 포함한 대부분의 일상적인 서버 관리 작업에 사용할 수 있습니다.