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

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

참고: 이는 다음과 유사해 보일 수 있습니다.이 문제. 관련이 있지만 동일하지는 않습니다(게다가 다른 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로컬 호스트에서 실행됩니다 .

관련 정보