同じネットワークセグメント上の別のホストにログインできる必要があります。誤って設定されたホストにアクセスする方法には、中間ホストのルートが必要なものもありますが、中間ホストのルートを必要とせずにアクセスする簡単な方法もあります。
IPv6を使用してホストにアクセスする簡単な方法
ssh -o ProxyCommand='ssh -W [fe80::42:ff:fe:42%%eth0]:%p user@intermediate-host' root@target-server
次の例でご利用の場合の正しい値で置換する上記のコマンドを必要としている値:fe80::42:ff:fe:42
、eth0
、user
、intermediate-host
、とtarget-server
。
仕組みの詳細な説明
ProxyCommand
ターゲットホストへのTCP接続を直接開くことができない場合に使用するssh機能です。引数ProxyCommand
は、TCP接続の代わりにstdin / stdoutを使用するコマンドです。
-W
単一のポート転送を開き、それをstdin / stdoutに接続するために使用されます。これはにうまく適合しProxyCommand
ます。
fe80::42:ff:fe:42%%eth0
ターゲットホストのリンクローカルアドレスです。起因していることに注意してくださいProxyCommand
使用して%
エスケープ文字として、型付きsshコマンドを使用する必要があり%%
、その場所で。を実行すると、セグメント上のすべてのリンクローカルアドレスを見つけることができますssh user@intermediate-host ping6 -nc2 ff02::1%eth0
。
この目的でIPv6リンクローカルアドレスを使用することは、最近のすべてのシステムでデフォルトで有効になっているため、通常は最も簡単な方法です。IPv4スタックとIPv6スタックの両方の設定が誤っていてもリンクローカルアドレスは機能し続けます。
IPv4へのフォールバック
誤って設定されたホストでIPv6が完全に無効になっている場合(絶対に推奨されません)、IPv4を使用する必要があります。IPv4にはリンクローカルアドレスがないため、IPv6がIPv4を使用して誤って構成されたホストにアクセスする方法はより複雑になり、中間ホストでルートアクセスが必要になります。
誤って設定されたホストがデフォルトゲートウェイを使用できる場合、外部からアクセスできます。おそらく、誤って設定されたネットマスクは、スタックがネットマスクでカバーされているプレフィックスの外側のゲートウェイを使用することを拒否したために、デフォルトゲートウェイを壊しました。これが実際に当てはまる場合、誤って設定されたホストは、この間違って設定されたホストに現在アクセス可能なサブネット内の他のIPアドレスであるため、192.168.1.8とのみ通信できます。
192.168.1.8にログインしている場合、そこから192.168.1.9にsshできるだけかもしれません。192.168.1.8が現在割り当てられていない場合、ルートアクセス権があるセグメント上の任意のホストに一時的に割り当てることができます。
fe80::42:ff:fe:42
、アドレスは...?誤って構成されたサーバーだと思いますか?