サーバAからサーバBにログインしたときに、サーバBから、サーバAにデータを送ったりすることはできるでしょうか?
例としては、サーバBのデータをサーバAにバックアップする場合です。なんでこんなことをするかというと、ユーザ権限の
問題で、サーバBのあるユーザからサーバAに送りたいのです。サーバBからサーバAにログインできれば簡単なのですが、
できない場合なのです。(サーバAがローカルで、サーバBがリモートの場合など)
サーバAからサーバB共にSSHサーバーが立ち上がっているならば、
SSHにはポートフォワーディングの機能がありますが、これを使えば何とかなるかもしれません。
http://www.turbolinux.com/products/server/11s/user_guide/x9016.h...
通常ポートフォワーディングでは、ローカル→サーバーへSSH接続し、そのときローカルのポートをサーバーに転送します。
例)ssh -L 20000:localhost:10000 user@server1
localhost:20000へ接続すると、server1の10000ポートへ転送
上記の場合は、ローカルでポートを待ち受け、それをリモートに転送します。
それとは逆に、リモートでポートを待ち受け、それをローカルに転送することもできます。
例)ssh -R 40000:localhost:30000 user@server1
server1:30000へ接続すると、ローカルの40000ポートへ転送
これを利用して、下記のようにすれば、サーバーからローカルへscpすることができます。
$ssh -R 40022:localhost:22 user@server1
※server1にsshで接続、server1の40022はlocalhost(ローカル)の22に転送
$scp -P 40022 filename localhost:
※scpでファイル転送。転送先はserver1の40022=localhost
参考になる絵がなくてわかりづらくて申し訳ないのですが、以上の方法はどうでしょうか。
サーバAからサーバBにsshでログインできるのなら、サーバAからサーバBに対してscpコマンドを使えばできます。
scp -r userB@サーバB:data/dir-B/files* ./dir-A
こんな感じです。
サーバBへのログインアカウントでないアカウントのデータをバックアップしたいので難しいのです。
サーバAからサーバB共にSSHサーバーが立ち上がっているならば、
SSHにはポートフォワーディングの機能がありますが、これを使えば何とかなるかもしれません。
http://www.turbolinux.com/products/server/11s/user_guide/x9016.h...
通常ポートフォワーディングでは、ローカル→サーバーへSSH接続し、そのときローカルのポートをサーバーに転送します。
例)ssh -L 20000:localhost:10000 user@server1
localhost:20000へ接続すると、server1の10000ポートへ転送
上記の場合は、ローカルでポートを待ち受け、それをリモートに転送します。
それとは逆に、リモートでポートを待ち受け、それをローカルに転送することもできます。
例)ssh -R 40000:localhost:30000 user@server1
server1:30000へ接続すると、ローカルの40000ポートへ転送
これを利用して、下記のようにすれば、サーバーからローカルへscpすることができます。
$ssh -R 40022:localhost:22 user@server1
※server1にsshで接続、server1の40022はlocalhost(ローカル)の22に転送
$scp -P 40022 filename localhost:
※scpでファイル転送。転送先はserver1の40022=localhost
参考になる絵がなくてわかりづらくて申し訳ないのですが、以上の方法はどうでしょうか。
おお、素晴らしい。試してみます。
普通にsshでA -> B の接続で B - >A の通信ができてしまうと、
とてつもないセキュリティホールになるので、とりあえずできません。
アカウントに制限があると厳しいのですが、
ppp over ssh
って方法でvpnを張れます。昔やったなあと。懐かしい感じです。
http://www.google.co.jp/search?sourceid=navclient&ie=UTF-8&rlz=1...
権限があって、セキュリティの保持ができて、という場合にしか難しいです。
バックアップだけが目的であれば、
サーバBにサーバAからログイン
サーバBにはアカウントがあるが、サーバAにはアカウントが無い。
で、あってますかね。。
バックアップして欲しいデータをtarで固めてscpなりで持っていくのが妥当かなとは思います。
サーバB で tar zcvf /tmp/backup.tar.gz /home/daredare
サーバA から scp サーバB:/tmp/backup.tar.gz .
とか。
>ユーザ権限の問題で、サーバBのあるユーザからサーバAに送りたいのです。
>サーバBへのログインアカウントでないアカウントのデータをバックアップしたいので難しいのです。
ちょっと方向がみえないのですが、
アカウントの国境を超えるのはセキュリティ上困難です。
2の回答を試してみます。
おお、素晴らしい。試してみます。