주의: 이것은 다음과 동일해 보일 수 있습니다.이 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
로컬 호스트에서 실행됩니다 .