직접 ssh를 사용하면 서버가 제대로 실행되고 로그아웃하기 전에 원하는 만큼의 명령을 실행할 수 있습니다.ssh [email protected]
서버 IP 주소는 내 네트워크 설정에 정의된 것과 매우 유사하지만 마지막 옥텟이 바뀌었습니다. 다음 명령은 ifconfig
올바른 IP 주소를 읽고 생성합니다.
ifconfig Netcon | grep "inet " | printf `awk '{ print $2 }'` | tail -c 1 | ssh -tt [email protected].`tr 12 21`
SSH는 서버 비밀번호와 로그인을 묻는 메시지를 표시하고 프롬프트에 새 호스트 이름을 표시합니다. 그러나 내가 입력한 것은 아무것도 실행되지 않습니다.
Last login: Fri Feb 28 09:07:38 2020 from 192.168.13.2
[email protected]:~$ ping google.com
cd
asdasdwjawdi
-tt
SSH 호출에서 이를 제거하면 다음과 같이 로그인이 실패합니다.
tput: No value for $TERM and no -T specified
답변1
당신은 혼란스러워요표준 입력ssh
최종 옥텟을 생성하는 데 필요한 명령 및 처리입니다. 기본적으로 귀하의 명령은 다음과 같습니다.
echo 1.2.3.4 | ssh -tt user@`tr 12 21`
tr
이를 통해 명령(파이프)의 입력이 수신되고 있으므로 echo
터미널에 연결되지 않았음을 알 수 있기를 바랍니다 . 또한 ssh
파이프에서 입력을 읽으려고 시도합니다.
내 생각에 당신이 원하는 것은 이것이다.
ip=$(ifconfig eth0 | awk '/inet / { split($2, ip, /\./); printf "%d.%d.%d.2\n", ip[1], ip[2], ip[3] }')
ssh "user@$ip"
또는 임시 변수가 없는 줄에서
ssh "user@$(ifconfig eth0 | awk '/inet / { split($2, ip, /\./); printf "%d.%d.%d.2\n", ip[1], ip[2], ip[3] }')"