SSH ProxyCommand에 걸리지 않도록 하세요.

SSH ProxyCommand에 걸리지 않도록 하세요.

나는 다음과 같은 줄을 가지고 있습니다 .ssh/config:

Host localhost
ProxyCommand none
Host n0*
ProxyCommand none

Host *
ProxyCommand corkscrew proxy.m.com 80 myserv 443 ~/.ssh/auth

즉, localhostssh 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

관련 정보