`ssh-copy-id`에서 stdin을 통해 비밀번호를 보내십시오


11

이상적으로을 사용하여 일부 ID 배포를 자동화해야합니다 ssh-copy-id.

stdin을 통해 암호를 제공하려고 하는데이 플래그 ssh를 사용하여 가능합니다 -S. 명령 ssh에서 -o플래그 를 사용하기 위해 추가 옵션을 보낼 수 있다는 것을 알고 ssh-copy-id있지만 매뉴얼 페이지에는이 플래그의 사용 예가 없습니다.

그래서 ssh-copy-idstdin 을 통해 SSH 비밀번호를 전달하려고 시도했습니다 .

$# echo $TMP_PASS | ssh-copy-id -p2222 -i key.pub user@host -o "-S"

그러나 내가 얻는 것은 :

/bin/ssh-copy-id: ERROR: command-line: line 0: Bad configuration option: -s

편집하다:

stdin을 통해 암호를 제공하려고 하는데이 플래그 ssh를 사용하여 가능합니다 -S.

이 진술은 잘못되었습니다. 나는 실제로이 깃발을 sudo사람 에게서 읽었습니다 .

답변:


15

sshpass를 설치하고 다음에 대한 호출을 변경하려고 할 수 있습니다 ssh-copy-id.

sshpass -p "$TMP_PASS" ssh-copy-id

lol, mac이 아니고 brew install시도되면 "오류 :"sshpass "라는 이름을 가진 사용 가능한 공식이 없습니다. SSH 사용자가 SSH 보안을 망칠 수 없기 때문에 sshpass를 추가하지 않습니다."
tofutim

osx에 homebrew와 함께 설치하는 방법이 여기 있습니다. gist.github.com/arunoda/7790979#installing-with-homebrew 실행해야 할 것brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb
ewatt

2

-S옵션에 대한 정보는 어디서 찾 습니까? 완전히 다른 일을합니다! 멀티플렉싱 및 ControlPath에 사용됩니다.

SSH 표준 입력에 암호를 수락하지 않습니다 이제까지 당신이 당신의 배포 (선호하는 방법) 또는 사용 허가 키를 미리 설치해야합니다 있도록, sshpass또는 expect다른 많은 질문에 설명 된대로 스크립트.


젠장, 네 말이 맞아! 나는 방금 -S깃발이 sudo: S
2grit

ssh-copy-id를 사용하여 모든 호스트에 이미 기본 사용자 이름과 비밀번호가있는 상태에서 100 개의 호스트에 키를 설치하려면 ssh-copy-id가 동일한 비밀번호를 매번 묻는 메시지를 피하는 방법은 무엇입니까?
realtebo

그것은 이미 두 가지 답변 모두에서 답을 얻었습니다. 스크립트가 필요하거나 스크립트가 필요한 경우 sshpass를 사용하십시오.
Jakuje
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.