bash 스크립트 기능을 사용하여 원격 호스트에 SSH로 연결하는 방법은 무엇입니까? [복사]

bash 스크립트 기능을 사용하여 원격 호스트에 SSH로 연결하는 방법은 무엇입니까? [복사]

저는 bash 스크립팅을 처음 접했습니다. 내 스크립트에서 원격 컴퓨터(내 LAN에 있는)로 ssh하는 함수를 호출하고 명령을 실행하고 싶습니다.

지금까지 나는 다음을 가지고 있습니다 :

function run_ssh_command {
    target_ip=$1
    username=$2
    password=$3
    cmd=$4

    ssh -l ${username} ${target_ip} ${password}
}

터미널에서 다음과 같이 함수를 호출합니다.

(노트: 내 컴퓨터에서 함수를 실행할 때 script_name, 사용자 이름 및 비밀번호에 "실제" 값을 제공합니다. "ifconfig"는 원격 시스템에서 실행하려는 명령입니다. )

source script_name.sh; run_ssh_command 192.168.X.Y username password ifconfig

결과: 위 명령을 실행하면 로그인 프로세스의 비밀번호 프롬프트 부분으로 이동합니다(예: ssh와 동일).[이메일 보호됨])

질문: 비밀번호 입력을 자동으로 처리하는 스크립트를 사용하고 싶습니다. 일반적으로 이 문제를 해결하는 "가장 좋은" 방법은 무엇입니까?

답변1

당신은 그것을 사용할 수 있습니다SSH패스. 그러나 이를 위해서는 비밀번호를 하드코딩해야 하는데, 이는 일반적으로 안전하지 않으므로 권장되지 않지만 RSA 지문에 액세스할 수 없는 경우 필요할 수 있습니다.

용법:

sshpass -p somepassword ssh user@host

원격 컴퓨터에 대한 루트 액세스 권한이 있는 경우 RSA 키 설정을 고려해야 합니다.이것어떻게 설정되는지 설명합니다.

답변2

스크립트에서 ssh를 실행하려면 다음을 사용하세요.

ssh -i {privateKey} -o StrictHostKeyChecking=no {userName}@{serverIp} "{command}"

예:

ssh -i privateKey -o StrictHostKeyChecking=no [email protected] "mkdir testFolder"

이 명령은 스크립트 코드에서 테스트 폴더를 생성합니다.

관련 정보