外部 ioaddress をインポートし、SSH 構成ファイルの末尾で置き換えるスクリプトが必要です。
今まで
#!/bin/sh
IP=$(wget http://ipecho.net/plain -qO-)
変数の場合はエコーできますが、SSH設定で現在の外部IPを新しいIPに置き換える方法が必要です。
Host $IP
User UserName
Port 22
IdentityFile ~/.ssh/id_rsa
Host home
HostName 192.168.0.1
Host away
HostName 97.113.55.62
去るのは外部的です
だから私が必要とするのは、私のSSH設定exで外部IPを交換することです。ホスト名192.168.0.1(既存のIP)ホスト名192.168.0.2(新しいIP)
ベストアンサー1
また、OLDIPを交換したいので、それを識別する必要があります。
OLDIP=`grep -w away -A 1 /etc/ssh/ssh_config | awk '/Hostname/ {print $2}'`
ここのホスト名行は、この行の直下になければなりません。それ以外の場合にHost away
調整する必要があります。-A 1
-A 2
-w away
「away」という単語を含む行と一致します。
-A 1
以前に一致した行の後に行を表示します。
awk '/Hostname/ {print $2}'
前の一致行では、ホスト名の行のみを保持し、2番目の列のみを保持します。
次に、OLDIPをIPに置き換えるためにsedを実行します。
sed -i "s/$OLDIP/$IP/g" /etc/ssh/ssh_config
穴は次のとおりです。
#!/bin/sh
IP=$(wget http://ipecho.net/plain -qO-)
OLDIP=`grep -w away -A 1 /etc/ssh/ssh_config | awk '/Hostname/ {print $2}'`
sed -i "s/$OLDIP/$IP/g" /etc/ssh/ssh_config