"원격 쉘 데몬"(ssh, telnet, netcat, socat... 상관없음)을 실행해야 합니다.루트가 아닌 사용자. 원격 셸을 제공해야 합니다.탭 완성나는 할 수 있기를 바랍니다화살표를 사용하여 기록 찾아보기.
현재 netcat 기반 솔루션을 사용하고 있지만느슨한 탭 완성나는 할 수 없다검색 기록화살표를 사용하세요
서버 측에서:
# Run the "remote shell daemon"
$ mkfifo fifo
$ nc -l 2000 <fifo | /bin/bash &> fifo
$ rm fifo
클라이언트 측에서:
# Connect to the remote shell
$ nc $REMOTE_ADDR 2000
Bash에 -i
또는 매개변수를 추가해도 -l
도움이 되지 않습니다.
답변1
socat(1)이 도움이 될 수 있습니다.
~에서http://stuff.mit.edu/afs/sipb/machine/penguin-lust/src/socat-1.7.1.2/EXAMPLES:
// poor mans 'telnetd' replacement
# socat tcp-l:2023,reuseaddr,fork exec:/bin/login,pty,setsid,setpgid,stderr,ctty
// and here an appropriate client:
$ socat -,raw,echo=0 tcp:172.16.181.130:2023
여기 예제에서는 분명히 루트 액세스가 필요한 "login"을 사용하지만 /bin/zsh를 사용하여 성공적으로 테스트했습니다. 이는 보안이 문제가 되지 않는다는 것을 의미합니다... 그렇지 않으면 이 팁을 찾은 페이지에 나와 있듯이 SSL을 통한 클라이언트 인증을 사용하여 실제로 본인만 로그인할 수 있도록 할 수 있습니다.
답변2
탭 완성을 위해 netcat을 사용하십시오.
- stty : change and print terminal line settings
- echo : echo input characters
- icanon : enable erase, kill, werase, and rprnt special characters
- sane : Revert back default terminal line setting
주문하다:
bash-4.3# stty -echo -icanon && nc ... && stty sane
예:
stty -echo -icanon && nc 0 5000 && stty sane Note : 5000 is the port number