두 부분으로 구성된 ssh + 포트 전달 명령을 생성하는 제가 정말 좋아하는 스크립트가 있습니다.
ssh -N -f -o 'ControlMaster Auto' -o 'ControlPath /tmp/gimme_access' -o 'ControlPersist 1m' -L 6473:33.22.0.0:22 -i /home/sink/.ssh/id_dsa -o 'UserKnownHostsFile /home/sink/.ssh/known_hosts' -p 6000 [email protected] ; ssh -p 6473 -l noc -i /home/my_boy/.ssh/id_rsa -o 'StrictHostKeyChecking no' 127.0.0.1
이로 인해 이러한 컴퓨터에 로그인하기 위해 다시 작성할 수 있는 다양한 장치에 노출되었지만 연결 문자열만 출력하는 명령을 선호합니다.
위의 문자열을 생성하고 로그인 상태를 유지하는 명령을 파이프할 수 있는 것이 있습니까? 나는 강타하기 위해 파이핑을 시도했지만 즉시 종료되었습니다.
답변1
이를 사용하여 eval
문자열에 저장된(또는 다른 프로그램의 출력을 기반으로) 명령을 실행할 수 있습니다.
eval 'echo Hello World'
eval $(magic-ssh-commmand-generator)
에서 man bash
:
eval [arg ...]
The args are read and concatenated together into a single command.
This command is then read and executed by the shell, and its exit status
is returned as the value of eval. If there are no args, or only null
arguments, eval returns 0.