ssh
私はしばしば自宅でファイルやオペレーティングプログラムを転送することでこれを頻繁に行います。私が主に使用しているデバイスは職場で使用するデスクトップですが、ssh
すでに部門ネットワークに接続していない場合は直接使用できません。したがって、自宅にいる場合は、ssh
まず部門のネットワークに接続してからデスクトップに接続する必要があります。
ssh username@departmentnetwork
それから
ssh username@desktop-departmentnetwork
この設定は、自宅でファイルを転送するには、scp
そのファイルを部門ネットワークのドライブ、ssh
部門ネットワークに転送してから、ファイルをscp
デスクトップに転送する必要があることを意味します。
、、、および一部または全部を使用して「ネットワーク内のネットワーク」に接続するssh
方法はありますか?scp
sshfs
答え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"
恐ろしい図を無視してください:)