Ubuntu 12.04のSSH設定は14.04.4では機能しません。

Ubuntu 12.04のSSH設定は14.04.4では機能しません。

12.04 システムを交換するために新しい Ubuntu 14.04.4 サーバーをセットアップしましたが、新しいサーバーで古い SSH 構成に問題があります。構成なしでSSHを使用でき、コマンドラインからBaschenサーバーを介して問題なく接続できます。例えば、

ssh -o ProxyCommand="ssh -W %h:%p bastion.my.company.com" lab123.my.company.com

ところで、/home/myname/.ssh/config以下のような設定でファイルを生成すると問題が発生します。

ServerAliveInterval 150
ServerAliveCountMax 6

ControlMaster auto
ControlPath /tmp/ssh_%h_%p_%r

Host *.my.company.com
User   myname
IdentityFile /home/myname/.ssh/mykey.pem
ProxyCommand ssh bastion -W %h:%p
ForwardAgent yes

Host bastion
Hostname        bastion.my.company.com
User            myname
IdentityFile    /home/myname/.ssh/mykey.pem

上記の設定でsshを使用しようとすると、次のような何百ものsshプロセスが表示されます。

myname 29855 29854  0 12:24 pts/6    00:00:00 ssh bastion -W bastion.my.company.com:22
myname 29856 29855  0 12:24 pts/6    00:00:00 ssh bastion -W bastion.my.company.com:22
myname 29857 29856  0 12:24 pts/6    00:00:00 ssh bastion -W bastion.my.company.com:22
myname 29858 29857  0 12:24 pts/6    00:00:00 ssh bastion -W bastion.my.company.com:22

sshCtrl+をクリックするまで停止し、CすべてのSSHプロセスが終了します。

各プロセスの最後の数行のトレースは次のとおりです。

....
write(4, "SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2"..., 43) = 43
read(5, 0xbfe08efc, 1)                  = ? ERESTARTSYS (To be restarted if SA_RESTART is set)
--- SIGINT {si_signo=SIGINT, si_code=SI_KERNEL} ---
+++ killed by SIGINT +++

トレースを詳しく調べてみると、ファイルハンドルが次から来たことがわかりました。

...
socket(PF_LOCAL, SOCK_STREAM, 0)        = 3
connect(3, {sa_family=AF_LOCAL, sun_path="/tmp/ssh_bastion.my.company.com_22_myname"}, 57) = -1 ENOENT (No such file or directory)
close(3)                                = 0
pipe([3, 4])                            = 0
pipe([5, 6])                            = 0
..

/tmpにソケットファイルがなく、トレースにバインディングがないことが奇妙です。

ベストアンサー1

Steeldriverはコメントでソリューションを提供し、ワイルドカードのホストマッチングからbastion.my.company.comを除外するよう提案しました。

例えば、

ServerAliveInterval 150
ServerAliveCountMax 6

ControlMaster auto
ControlPath /tmp/ssh_%h_%p_%r

Host *.my.company.com !bastion.my.company.com
User   myname
IdentityFile /home/myname/.ssh/mykey.pem
ProxyCommand ssh bastion -W %h:%p
ForwardAgent yes

Host bastion
Hostname        bastion.my.company.com
User            myname
IdentityFile    /home/myname/.ssh/mykey.pem

おすすめ記事