接続が確立されるたびに(root以外のユーザーとして)リモートホストにIPを保存します。

接続が確立されるたびに(root以外のユーザーとして)リモートホストにIPを保存します。

職場には(一時的に)動的ローカルLAN IPがありますが、自宅で接続するには、ホストA(静的IP)としてSSHを介して接続し、そこから自分のコンピュータに接続します。

ただし、IPが変更されるため、接続が確立されるたびにホストAに頻繁に保存したいと思います(ケーブルの不良によりイーサネット接続が失われる場合が多い)。

/etc/NetworkManager/dispatcher.d/90exportIPNetowrkManagerを使用しているので、次のコマンドを実行するファイルを作成しました。

 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以外のユーザーには簡単に実行できる方法が多少混乱しています。

ベストアンサー1

おすすめ記事