쉘 스크립트와 함께 SSH를 사용하면 수동 입력이 허용되지만 매개변수는 허용되지 않습니다.

쉘 스크립트와 함께 SSH를 사용하면 수동 입력이 허용되지만 매개변수는 허용되지 않습니다.

authenticate.sh다음과 같은 쉘 스크립트가 있습니다 .

#!/bin/bash
sshpass -p '$1' ssh $2@localhost

나는 그것을 사용하여 부른다

bash authenticate.sh password username

그런데 실행하면 "권한이 거부되었습니다. 다시 시도해 주세요"라는 메시지가 나타납니다. 내가 달리면

#!/bin/bash
sshpass -p 'password' ssh user@localhost

효과가있다...

도움이 필요하세요?

답변1

단일 아포스트로피로 인해 스크립트가 엉망이 된 것 같습니다. 아래 설명을 참조하세요.

이는 예상대로 작동합니다.

#!/bin/bash
sshpass -p "$1" ssh "$2"@localhost

이는 단일 아포스트로피로 인해 변수가 내부적으로 확장되는 것을 허용하지 않기 때문입니다.

관련 정보