私は次のような行を持っています.ssh/config
:
Host localhost
ProxyCommand none
Host n0*
ProxyCommand none
Host *
ProxyCommand corkscrew proxy.m.com 80 myserv 443 ~/.ssh/auth
つまり、localhost
sshn0*
ではプロキシを使用しませんが、他のホストではプロキシを使用します。
何度目が詰まったのに、いつ他の人とつながりたいかわかりました。ローカルマシンただし、プロキシがアクティブなため接続できません。彼らも例外ではありません~/.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