職場には(一時的に)動的ローカルLAN IPがありますが、自宅で接続するには、ホストA(静的IP)としてSSHを介して接続し、そこから自分のコンピュータに接続します。
ただし、IPが変更されるため、接続が確立されるたびにホストAに頻繁に保存したいと思います(ケーブルの不良によりイーサネット接続が失われる場合が多い)。
/etc/NetworkManager/dispatcher.d/90exportIP
NetowrkManagerを使用しているので、次のコマンドを実行するファイルを作成しました。
ssh hostA "echo $(date) enp4s0f2 IP: $(/sbin/ifconfig enp4s0f2 2>/dev/null|awk '/inet addr:/ {print $2}'|sed 's/addr://') >> todaysElanIP";
その後、私のIPを取得してtodaysElanIP
ホストAのファイルに保存します。
問題は、このスクリプトがrootとして実行され、私のキーがそこにないことです。時にはbashでこのコマンドを実行するとうまくいきます。しかし、ネットワークが起動するたびに自動的に実行したいと思います。
試しましたが、runuser -l myUser
この方法ではssh-agentにアクセスできませんでした。
毎回動作する必要はありません。たとえば、起動時にssh-agentにキーを追加しませんでした。次にネットワークがダウンして再エクスポートが発生した場合、この方法は効果的です。
rootユーザーにとっては難しいような作業を、root以外のユーザーには簡単に実行できる方法が多少混乱しています。