비밀번호 프롬프트 없이 SSH 통신 자동화

비밀번호 프롬프트 없이 SSH 통신 자동화

SSH를 사용하여 Host1과 통신하고 싶습니다.

호스트2에 대한 사용자 이름/비밀번호가 있고 쉘 스크립트를 통해 ssh를 사용하여 호스트2에 연결하고 싶다고 가정해 보겠습니다(사용자 이름과 비밀번호를 인수로 사용).

누군가가 동일한 쉘 스크립트 작성을 도와줄 수 있습니까?

답변1

비밀번호를 적어 두는 것은 좋은 생각이 아닌 것 같습니다. ssh열쇠를 보세요 . 공개 키와 개인 키 쌍을 만들고 host1여기에 공개 키를 복사하면 됩니다 host2.여기그것을 수행하는 방법에 대한 튜토리얼입니다.

답변2

expect시도해 보면 작동합니다. 작동하려면 설치해야 합니다 #!/bin/bash

HOSTS="VM2 VM3 VM4 VM1"

read -p "Password: " PASSWORD

for HOST in $HOSTS
do
expect -c "
your command 
    expect {
    "*password:*" { send $PASSWORD\r;interact }
    }
    exit
    "
done

답변3

ssh-agent그리고 를 보세요 sshpass.

그들이 당신의 문제를 해결하지 못했다면, 왜 그렇게 하지 않았는지 설명하십시오.

답변4

지속적인 SSH 통신을 원할 경우 autossh와 같은 유틸리티를 사용할 수 있습니다.

관련 정보