나는 다음과 같은 줄을 가지고 있습니다 .ssh/config
:
Host localhost
ProxyCommand none
Host n0*
ProxyCommand none
Host *
ProxyCommand corkscrew proxy.m.com 80 myserv 443 ~/.ssh/auth
즉, localhost
ssh n0*
에서는 프록시를 사용하지 않지만 다른 호스트에서는 프록시가 사용됩니다.
몇 번 막혔는데 언제 다른 사람과 연결하고 싶은지 알았어요로컬 머신이지만 프록시가 활성 상태이므로 연결할 수 없습니다. 그들도 예외는 아닙니다 ~/.ssh/config
.
프록시를 사용할 때 명령줄에 정보를 다시 출력할 수 있습니까? 예를 들어
$ ssh otherpc
---> using ProxyCommand corkscrew proxy.m.com 80 myserv 443 ~/.ssh/auth
Password:
나는 ssh -v
이 줄(그리고 다른 많은 줄)이 나열되어 있다는 것을 알고 있습니다.
debug1: Executing proxy command: exec corkscrew proxy.m.com 80 myserv 443 ~/.ssh/auth
막히는 것을 방지하는 데 도움이 되는 사용된 프록시 명령을 표시하는 더 간결한 방법이 있습니까? 어쩌면 grep에 대한 영리한 bash 별칭/함수일까요 ssh -v
?
경고하다:쓰지 마세요 ssh() { ssh -v | grep Proxy}
. 나도 시도해봤는데...우연히포크 폭격나 :P
답변1
corkscrew-wrapper
다음을 포함하는 작은 래퍼를 작성하는 것이 좋습니다 .
#!/bin/sh
echo "Executing proxy command corkscrew ..." > /dev/tty
exec corkscrew "$@"
대신 ProxyCommand 줄에서 사용하세요 corkscrew-wrapper
.corkscrew
또는 cron에 의한 실행을 지원하려면 at
다음이 작동해야 합니다.
#!/bin/sh
cmd() { echo "Executing proxy command corkscrew ..."; }
{ cmd > /dev/tty; } 2> /dev/null
[ $? -eq 0 ] || cmd >&2
exec corkscrew "$@"
참고: 터미널이 반드시 표준 입력에 연결되어 있지는 않으므로 가용성을 확인하는 데 /dev/tty
이 명령을 사용 하지 마십시오 .tty