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