最近、MacBook ProをSierraからHigh Sierraにアップグレードした同僚をサポートしています。彼はsshを介してフィールド内の私たちのボックスの1つに接続しようとしています。問題のボックスにはIPv6アドレスがあります。
~/.ssh/config
ファイルは空であり、sshキーは変更されていません。 /etc/ssh/ssh_config
ファイルは、MBPにインストールされるデフォルトです。 Digは正常に機能し、ボックスの適切なIPv6アドレスを報告します。 Ping6も期待どおりに機能します。彼は、DNS経由でIPv4アドレスで公開されている社内のgitサーバーに接続でき、問題なくプッシュ/プルできます。
私が彼にボックスにsshさせると、次のようになります:
ssh user@hostname
接続は次のように失敗します:
ssh: Could not resolve hostname [hostname]: nodename nor servname provided, or not known
-vvvvをsshに追加すると、次の出力が生成されます。
ssh -vvvv [hostname]
OpenSSH_7.6p1, LibreSSL 2.6.2
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to [hostname] port 22.
ssh: Could not resolve hostname [hostname]: nodename nor servname provided, or not known
彼がIPv6アドレスを使用してアプライアンスに接続すると、接続は成功し、ログインできます。
DNSサーバーは適切に構成されており、期待どおりにアドレスを提供します。 SierraでMBPを使用していますが、接続に問題はありません。また、私たちのグループはすべて、さまざまなヴィンテージとOSフレーバーのMacbook(他のHigh Sierraユーザーはいない)を使用しており、これまでのところ、この問題が発生しているのは彼だけです。
編集:提示された解決策を試しました here 。しかし、Appleのシステム整合性保護が邪魔をしました。この時点でオフにするつもりはありません。最後の手段として残しておきたいと思います。
この場合に役立つ回避策は次のとおりです。
# install openssh from brew
brew install openssh
# /usr/local/sbin shouldn't be writable on High Sierra (by default),
# so brew will fail to link the ssh binary
brew unlink openssh
ln -s /usr/local/Cellar/openssh/<version of openssh>/bin/ssh /usr/local/bin/ssh
これは、使用可能なバージョンのsshをリンクしました。これで、同僚は期待どおりに接続できるようになりました。彼のMacには2つのバージョンのsshがあるので、brewを介してインストールされたopensshバージョンが最初にPATHにあることを確認することが重要です。
PATH=/usr/local/bin:/usr/bin