ネットワークの特定のシステムにSSHで接続する

ネットワークの特定のシステムにSSHで接続する

ssh私はしばしば自宅でファイルやオペレーティングプログラムを転送することでこれを頻繁に行います。私が主に使用しているデバイスは職場で使用するデスクトップですが、sshすでに部門ネットワークに接続していない場合は直接使用できません。したがって、自宅にいる場合は、sshまず部門のネットワークに接続してからデスクトップに接続する必要があります。

ssh username@departmentnetworkそれから ssh username@desktop-departmentnetwork

この設定は、自宅でファイルを転送するには、scpそのファイルを部門ネットワークのドライブ、ssh部門ネットワークに転送してから、ファイルをscpデスクトップに転送する必要があることを意味します。

、、、および一部または全部を使用して「ネットワーク内のネットワーク」に接続するssh方法はありますか?scpsshfs

答え1

「ゲートウェイ」システムに接続してから、「ゲートウェイ」システムの背後にあるセカンダリシステムに接続するようにProxyCommand設定できる方法でこれを実行できます。ssh

Host internal-host
    User sam
    IdentityFile ~/.ssh/id_rsa
    ProxyCommand ssh user@gateway nc internal-host.somedom.com %p

この技術はツールを利用してncコネクタとして機能します。この記事では、どのように機能するかを詳しく説明します。透明なマルチホップSSH

ControlMaster私が使用するもう1つの秘密は、認証されたら、他の接続を再認証する必要なしにそれを「リサイクル」できるように設定に1つを追加することです。

Host *
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p

多くのホスト

複数の内部ホストがある場合は、ファイルで使用できる特殊変数を使用して~/.ssh/configホスト名(%h)とポート()を取得できます%p

Host host1 host2 host3
  User          internal-user
  ProxyCommand  ssh [email protected] nc %h %p

これにより、ssh host1システムはホスト1に接続できます。

引用する

答え2

@slmが提案した方法は良い方法です。他の方法を学びたいなら、SSHトンネルを通して学ぶことができます。

ssh -t -l gatewayuser -L9997:127.0.0.1:9998 gatewayserver "ssh -l serveruser -D9998 -N internalserver"

恐ろしい図を無視してください:)

ここに画像の説明を入力してください。

関連情報