これで、~/.ssh/config
リンクローカルIPv6を介して内蔵デバイスにアクセスできるようになりました。
Host someDevice
# Hostname fe80::dcad:beff:feef:cafe%%eth0
Hostname fe80::dcad:beff:feef:cafe%%enxf875a44106f9
User root
[some more options...]
ネットワークインターフェイスが変更されるたびに手動で対話したくありません。
- 両方がコメントアウトされると、SSHは最初のエントリのみを使用します。
- 各ホストに異なるホストを使用することは非現実的です。
まだ自動化した人はいますか?
今私はこれを実現するために研究してmatch
書類を提出しています。/etc/hosts
私はSSH設定ファイルで設定することを好みます。
答え1
これは、組み込みデバイスがmDnsをサポートする場合に最も簡単な方法です。
IPv6でなければならない場合:うまくいきますが、完璧ではありません。
# If eth0 is UP, use eth0:
Match originalhost exec "[ $(ip a | awk '/state UP/ {print $2}' | grep eth) == 'eth0:' ]"
Hostname fe80:::dcad:beff:feef:cafe%%eth0
# Default is enxf875
Host someDevice
Hostname fe80::dcad:beff:feef:cafe%%enxf875a44106f9
User root
- これにマッチングを使用するには:https://unix.stackexchange.com/a/175395/572363
- 現在のインターフェースを取得するには:https://unix.stackexchange.com/a/347049/572363
- 特に、マイコンピュータで使用される命名規則に従うため、インターフェイスの解析が向上する可能性があります。