mymachine
パブリックIPを持つサーバーを介してプライベートNATネットワーク上のサーバーからファイルをコピーする方法を見つける必要があります。 NATの背後にあるシステムには証明書のみがあるため、証明書を介して渡す必要があります。priv-server
pub-server
priv-server
user@mymachine
mymachine
pub-server
priv-server
したがって、単一のコマンドでSSHを介してログインするには、次のようにします。
$ ssh -tA user@pub-server 'ssh user@priv-server'
——非常にうまく動作します。証明書はviaから渡され、mymachine
すべてがうまく設定されました。priv-server
pub-server
今私は通常、scp
すべてのファイル転送要求にこれを使用しますが、すべてのトンネル情報をscp
。
ベストアンサー1
cat
代わりに、ファイルをローカルにコピーしてリモートcat > filename
コマンドにパイピングする低レベルの形式を使用してくださいpriv-server
。
$ cat file1.txt | ssh -A user@pub-server 'ssh user@priv-server "cat > file1.txt"'
または圧縮:
$ gzip -c file1.txt | ssh -A user@pub-server 'ssh user@priv-server "gunzip -c > file1.txt"'
抜粋man ssh
:
-A は認証プロキシ接続転送をイネーブルにします。これは設定ファイルでホストごとに指定することもできます。
-t は擬似 tty 割り当てを強制します。これは、リモートコンピュータ上で任意の画面ベースのプログラムを実行するために使用することができ、これは、例えばメニューサービスを実装する場合に有用である。複数の -t オプションは、ssh にローカル tty がない場合でも tty 割り当てを強制します。
最初は答えを知りませんでしたが、よく眠り、この質問を書いた後に最初に試したコマンドに問題があることを発見して修正しました。しかし、これは役に立つと思い、答えを共有することにしました。