`ssh-copy-id`에서 stdin을 통해 비밀번호 보내기

`ssh-copy-id`에서 stdin을 통해 비밀번호 보내기

.ssh-copy-id

플래그를 ssh사용하여 제공 할 수 있는 표준 입력을 통해 비밀번호를 제공하려고 합니다 . -S명령에서 ssh-o플래그를 사용하기 위해 다른 옵션을 보낼 수 있다는 것을 알고 있지만 ssh-copy-id매뉴얼 페이지에는 이 플래그를 사용하는 예가 없습니다.

ssh-copy-id그래서 다음 명령을 사용하여 stdin을 통해 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

편집하다:

플래그를 ssh사용하여 제공 할 수 있는 표준 입력을 통해 비밀번호를 제공하려고 합니다 .-S

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

답변1

sshpass를 설치하고 호출을 다음으로 변경해 보세요 ssh-copy-id.

sshpass -p "$TMP_PASS" ssh-copy-id user@host

답변2

옵션에 대한 정보는 어디에서 찾았습니까 -S? 그것은 완전히 다른 일을 합니다! 다중화 및 제어 경로에 사용됩니다.

SSH는 표준 입력에서 비밀번호를 허용하지 않습니다한 번, 따라서 배포에 인증 키를 사전 설치하거나(선호되는 방식) 다른 많은 질문에서 언급한 대로 또는 스크립트를 sshpass사용해야 합니다.expect

답변3

2020/Mac OS X(내 답변을 복사하여 붙여넣기그래서)

SSH패스 설치(원래 답변)

brew install hudochenkov/sshpass/sshpass

sshpass 및 비밀번호를 매개변수로 사용하여 ssh-copy-id를 실행합니다.

sshpass -p $MYPASSWORD ssh-copy-id -i ~/PATH/TO/KEY $USER@$HOST -p $PORT

엄격한 호스트 검사도 끄려면 -o기본 SSH에 전달된 플래그를 사용하세요.

sshpass -p hunter2 ssh-copy-id -o StrictHostKeyChecking=no -i ~/PATH/TO/KEY $USER@$HOST -p $PORT

@redneb의 솔루션을 시도하고 setsidutil-linux를 통해 설치했습니다.이 답변, 비밀번호 거부 메시지가 계속 표시됩니다.

SSH 키를 업로드하는 동안 여러 Raspberry Pi를 성공적으로 설정하는 이 전략을 찾았습니다. 내 스크립트에서는 오류를 ssh-keygen -R raspberrypi.local피하기 위해 매번 실행합니다 The ECDSA host key for raspberrypi.local has changed.

관련 정보