sshpass를 사용하여 두 번째 SSH 홉에 비밀번호를 제공하는 방법

sshpass를 사용하여 두 번째 SSH 홉에 비밀번호를 제공하는 방법

주의: 이것은 다음과 동일해 보일 수 있습니다.이 SO 질문. 관련되어 있지만 동일하지는 않습니다(다른 StackExchange 사이트에도 있음). 그 질문에서 저자는 원격 시스템에서 명령을 실행하는 방법을 묻습니다. 이 질문에서는 두 개의 SSH 연결을 통해 셸을 열고 유지하는 방법을 묻습니다.

$gateway. $server​따라서 일반적인 작업 흐름은 다음과 같습니다.

ssh $gateway (supply password manually)
ssh $server (supply password manually)

에 대한 홉에서는 SSH 공개 키 인증을 구성할 수 있지만 $gateway에 대한 두 번째 홉에서는 구성할 수 없습니다 $server. 그래서 내가 할 수 있는 최선은 다음과 같습니다.

ssh $gateway (no password necessary)
ssh $server (supply password manually)

내 질문은: sshpass두 번째 홉에 암호를 제공하기 위해 다른 방법을 사용할 수 있습니까? 컴퓨터 sshpass에 다른 소프트웨어를 설치할 권한이 없습니다 $gateway.

답변1

수동 비밀번호 입력을 무시할 수 있습니다.

vipin@kali:~$ cat kk.sh
#!/usr/bin/expect 
    set password 1               #set password to 1 (hardcoded)
    spawn ssh kali@kali          # user and hostname is kali
    expect "password"
    send "$password\r"
    interact                     # to get the shell prompt
vipin@kali:~$ ./kk.sh            # execute it and you are in new server

답변2

사용 ProxyCommand:

sshpass -p server_password ssh -oProxyCommand="ssh -W %h:%p $gateway" $server

sshpass로컬 호스트에서 실행됩니다 .

관련 정보