ネクストホップによるSSH、ユーザーのネクストホップにシェルはありません。

ネクストホップによるSSH、ユーザーのネクストホップにシェルはありません。

A、B、Cマシンがあります。

ユーザーはマシンAにあり、マシンBを介してマシンCにSSHを介して接続しようとします。ユーザーはシステムAとCにシェルを持っていますが、システムBには/usr/sbin/nologinがあります。 B経由でマシンCにSSH経由で接続できますか?

次のコマンドの結果は次のとおりです。

ssh -t B ssh C
This account is currently not available.

Bにシェルを持つユーザーを使用してマシンCにsshを実行すると、コマンドは機能します。

ベストアンサー1

読んだ後協会patrixのコメントを見ると、sshの場合でもこれが可能であることがわかります。試してはいけないシェルプログラムを実行します。最近の特徴はSSHを開く7.3が呼び出されますProxyJump(長い間組み込まれて最適化された(パイプ使用)ショートカットProxyCommand)。この機能はトンネルレベルでのみ機能し、中間ホストでシェルを実行しません。

したがって、Bでは、ユーザーアカウントのログインがシェルによって無効になっているが、認証は機能し続け、nologin転送をブロックするSSH設定がない場合(たとえば、orに設定さAllowTcpForwardingれていないが少なくともorに設定されている場合)、作業コマンドは次のようになります。簡単:remotenolocalyes

ssh -J B C

以前のSSHバージョンでは、構成なしで次のことができます。

ssh -f -N -L 2222:C:22 B
ssh -p 2222 localhost

重要な点は次のとおりです。

-N リモートコマンドを実行しません。これは
ポート転送に役立ちます。

おすすめ記事