読者です 読者をやめる 読者になる 読者になる

CircleCIからサーバへのSSH接続確立時間を高速化する

CircleCI SSH

最近CircleCIから特定のサーバへの操作を色々やってるのですが、何か微妙にSSH接続が遅いなと思って調べてみたら遅い原因がありましたよというお話。

GSSAPIAuthentication

結論から言っちゃいますと、/etc/ssh/ssh_configのGSSAPIAuthenticationがyesになっています。コンテナ内でsshデバッグしてみたら、モロにこれがボトルネックでした。

f:id:a-yamada:20150218004025p:plain

これがYesだとGSSAPIをトライしにいっちゃって、無駄に時間がかかります。というわけでNoにしちゃいましょう。

circle.ymlを修正

circle.ymlのmachineフェーズで、GSSAPIAuthentication noに置換してやるだけで十分です。

machine:
  pre:
    - sudo sed -i 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/g' /etc/ssh/ssh_config
    - cat /etc/ssh/ssh_config

置換後にcatで確認。GSSAPIAuthentication noになりました。特にserviceのrestartとかは不要です。これでサクッと接続できるようになります。

f:id:a-yamada:20150218004621p:plain

感想

デフォルトNoで良くない?