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に設定されている場合)、作業コマンドは次のようになります。簡単:remote
no
local
yes
ssh -J B C
以前のSSHバージョンでは、構成なしで次のことができます。
ssh -f -N -L 2222:C:22 B
ssh -p 2222 localhost
重要な点は次のとおりです。
-N リモートコマンドを実行しません。これは
ポート転送に役立ちます。