AサーバーのファイルをBサーバーに転送する方法について教えてください。
ウェブで情報を調べて実行してみましたがうまくいきません。

Aサーバーの/home/me/appをBサーバーの/home/me/testにコピー
BサーバーのSSHのポート番号は●●●●に変更してある。

下記のコマンドを実行
scp -r -P ●●●● /home/me/app user@xxx.xxx.xxx.xxx :/home/me/test


応答メッセージ
--------------------------------------------------------------------------
ssh: connect to host xxx.xxx.xxx.xxx port ●●●●: Connection timed out
lost connection
--------------------------------------------------------------------------

サーバーBのiptables
--------------------------------------------------------------------------
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport ●●●● -j ACCEPT
-A INPUT -s (転送元サーバーのIPアドレス) -p tcp --dport ●●●● -j ACCEPT→追加した行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 20 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 21 -j ACCEPT
COMMIT
--------------------------------------------------------------------------

サーバーAのiptablesも同じ記載方法です。

サーバーBのiptablesの設定はこれで良いか教えてください。
サーバーAのiptablesに変更が必要であれば記載方法を教えてください。
接続はSSHというのは解ったのですが、ファイルの転送自体は何で行われるのでしょうか?FTPなどでしょうか?

ご回答宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

scpコマンドを使うまえに


まずはsshでリモート接続できるか試してみてはどうでしょう
sshでのリモート接続ができないようであれば
scpコマンドはおそらく通りません

iptablesの設定は正直
実際にいじりながらではないと
この設定でOKとはいえない部分もあります

それと・・・
FTP転送ではないです
sshもscpもやりとりされるデータは暗号化されています
暗号化されているものでsftpというものも
用意されていますよ
    • good
    • 0
この回答へのお礼

saya_linux様

ご回答ありがとうございます。
TeraTarmでのSSH接続はできております。現在Rootでは繋げない設定で、ユーザーのみログインできるようになっています。IDとパスワード、そして公開鍵を利用してのログインになります。
別サーバーからSSHでつなぐ時も、公開鍵の設定などが必要なのでしょうか?
公開鍵を利用してのログインになっているので、その流れから考えると別サーバーからの接続にも公開鍵の設定が必要な感じがしますが・・・

FTP転送で無いこと理解できました。ありがとうございました。
sftpというのもあるんですね。そちらも情報を調べてみたいと思います。

お礼日時:2014/12/10 23:10

いろいろ気になるところはあるのですが


-P オプションでポート指定をしないで
省略して実行した場合は
どうなるのか試してみてほしいです
    • good
    • 1

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qpingでポートの指定

pingでIPアドレスを指定して、通信できるかどうかというのは
よく使いますが、pingでポートを指定して応答するかどうかは調べられるのでしょうか?

よろしくお願いします

Aベストアンサー

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含むICMP)ではできません。

FTPの疎通確認であれば、クライアントからサーバに対するTCP/21通信(FTP-CMD)が可能であること(サーバからクライアントへのTCP/21からの応答を含む)+サーバからクライアントに対するTCP/20通信(FTP-DATA)が可能であること(クライアントからサーバへのTCP/21からの応答を含む)が必要でしょう。

監視ソフトによるものであれば、
・クライアントからサーバへのログイン(TCP/21)
・クライアントからサーバへのlsの結果(TCP/20)
で確認すればよいでしょう。

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含む...続きを読む

Qポートの80と443

こちらのサービス(https://secure.logmein.com/)を利用すると、インターネットを見られるサーバーのポートの80と443が空いていればルータやファイアウォールに特段の設定なく外部からサーバーを操作できるそうですが、逆にサーバーのポートの80や443を空けることには何か危険性があるのでしょうか。

Aベストアンサー

ポート80は一般的なHTTP、ポート443はHTTPSです。
この2つのポートがあいていなければインターネット接続(WEBブラウジング)は出来ません。
ですから、ほとんどのファイアウォールでこのポートは開いています。(インターネット接続を制限している社内LANでは当然閉じていますが)

ちなみに、よく使うポートとしてはFTPで20、21、SMTP(送信メール)で25、受信メールPOP3で110あたりです。セキュリティポリシー上、この辺は制限される事も多いですが、HTTP 80、HTTPS(暗号化用)443は通常閉じません。


危険性?
WEBプロトコルを使ってFTP的なファイル転送(WebDAV)やVPN等も出来るようになっています。当然そこにはある種の危険はつきものですが、WEBブラウジングに伴う危険と大きく変わりません。ウィルス等に感染していればこの2つのポートだけでも相当危険でしょうね。

参考まで。

Qシェルスクリプトでファイル内の数値文字列を数値として扱うには

失礼します。
シェルスクリプトでファイル内のテキスト(数値文字列)を取得して、それを使って計算するにはどうすれば良いでしょうか?

str:ファイル内のテキスト(数値文字列)

res=$(( $str + 1 ))

・エラー
")syntax error: invalid arithmetic operator (error token is "


よろしくお願いします。

Aベストアンサー

bashをご使用と判断して

res=$(( $str + 1 ))
ではなく、
res=$(( str + 1 ))
だと思います。

> exprもやってみたのですが、処理が遅くなるので使いません。
興味があって以下のシェルで検証してみました。

#!/bin/bash

str=1
i=0

echo 'Using $((str + 1))'
date '+%H:%M:%S.%N'

while [ $i -lt 10000 ]
do
str=$(( str + 1))
i=`expr $i + 1`
done

date '+%H:%M:%S.%N'

exit

$ ./test.sh
Using $((str + 1))
09:18:46.290418000
09:18:56.929345000
これをexprに書き換えたところ
$ ./test2.sh
Using expr
09:19:00.302748000
09:19:19.259990000

exprだと19秒ですが、$(( 演算 )) だと10秒程度なので、演算が多くなれば確かにexprは不利ですね。

bashをご使用と判断して

res=$(( $str + 1 ))
ではなく、
res=$(( str + 1 ))
だと思います。

> exprもやってみたのですが、処理が遅くなるので使いません。
興味があって以下のシェルで検証してみました。

#!/bin/bash

str=1
i=0

echo 'Using $((str + 1))'
date '+%H:%M:%S.%N'

while [ $i -lt 10000 ]
do
str=$(( str + 1))
i=`expr $i + 1`
done

date '+%H:%M:%S.%N'

exit

$ ./test.sh
Using $((str + 1))
09:18:46.290418000
09:18:56.929345000
これをe...続きを読む

Q起動しているサービスを確認するコマンド

初歩的な質問で恐縮ですが、ご教示いただけますと幸いです。

起動しているサービスを確認するために以下の2つのコマンドを打ってみるのですが、結果(出て来るサービス名)が違います。
このコマンドの違いについてご教示いただけますでしょうか。

(1)service --status-all
(2)chkconfig --list

Aベストアンサー

(1)service --status-all

サービスの現在のステータスを調べるコマンド

(2)chkconfig --list

OSのブート時に自動起動するサービスを調べるコマンド

違いが出るのは、
・ブート後に手動あるいは他のコマンドから起動したサービス
・ブート後に手動あるいは他のコマンドから、あるいはエラーで停止したサービス
・ブート後に実行はされるがすぐに停止して常駐しないサービス (ntpdate とか)

あるいは、(1)ではサービス名が表示されない物もあるので、どのサービスがどんなステータス出力をするのか知っておく必要もありますね。(service network statusとか)

Q~以外を削除する場合(rmコマンド)

linuxのコマンドで
~以外のファイル、ディレクトリを全て削除したい時は
どのような記述をすれば良いのでしょうか?
シェルスクリプトではなくrmコマンド1つで削除したのいですが…

例: tar以外のファイル・ディレクトリを
   すべて削除したい場合など

どなたかご存知の方がいらっしゃったら
教えてください。よろしくお願い致します。

Aベストアンサー

rm コマンドのみという訳にはいきませんが基本的なコマンドを組み合わせると実現可能と思います。

「名前が tar で終わるもの以外のファイル・ディレクトリを削除する」場合だと

ls | grep -v -E 'tar$' | xargs rm -r

となります。

ファイルの一覧を取得し ( ls )
'tar'で終わるもの以外を抽出し ( grep )
その結果を rm -r の引数に指定して実行 ( xargs )

という流れです。

ファイルを削除するような操作については失敗するとダメージが大きいので、事前にテストして動作を確認すると良いとおもいます。また rm -r -i としてそれぞれのファイルについて、削除の問い合わせをするのも有効です。

Qscpコマンドでリモートサーバのファイルを削除したい

winscpでリモートサーバのファイル削除が出来るので、てっきりscpコマンドでオプションがあるのかと思ったのですが、見当たりません。scpコマンドでリモートファイルの削除は可能でしょうか?誰か教えて!

Aベストアンサー

1番の方と同じ意見ですが、
ssh ホスト名 コマンド
でリモートサーバ上でコマンドが実行できますので

ssh SSH_SERVER "rm testfile"

のように実行するの一般的かと。

Qgrepで検索文字列が完全一致した行だけ取り出す方法

grepの文字列検索で検索文字列が単語として、完全一致した行だけ取り出す方法はないでしょうか?

通常は
grep hoge hoge.txt

と打つと、hogeが含まれる行が出力されますが、今回は含まれる行ではなくて完全に文字列が一致した行だけ取り出したいのです。

例えばhoge.txtの中に
cc ghoge
kkl hogem
jjll hoge
という3行があったとしたら最後の行でhogeという文字が空白で区切られた行だけ取り出したいのです。

何かよい方法があれば教えてください

Aベストアンサー

-w オプションじゃだめですか?

参考URL:http://www.linux.or.jp/JM/html/GNU_grep/man1/grep.1.html

Qsedの置換文字に変数を使用したいのですが・・・

あるファイルの特定の文字を変換し、上書きをする処理を行いたいのですが、sedの置換文字に変数が渡せなくて困っています。

例:
X="a"
Y="b"
echo test.txt | sed 's/${X}/${Y/g}' >test.txt

sedでは置換文字に${X}といった変数を使用することはできないのでしょうか?

Aベストアンサー

' ・・・' で囲まれた中の$はそのままドルマークです。変数展開をするなら、'・・・'で囲んではいけません。

何も囲まないか、"・・・"で囲むかです。

Qファイルサーバー間のデータコピーについて

ファイルサーバー(マスター)のデータを、ファイルサーバ(バックアップ)に
ネットワーク経由でコピーしようとしています。

コピーのコマンドを実行するのは、同じネットワーク内に設置している
クライアントPC(Windows8.1)からです。

この場合、処理の命令はクライアントPCから行いますが、データの流れとしては
以下のような認識で正しいでしょうか?

■想定しているデータの流れ
ファイルサーバー(マスター) → ファイルサーバー(バックアップ)

■想定していないデータの流れ
ファイルサーバー(マスター) → クライアントPC →ファイルサーバー(バックアップ)

前者の動きをすると考えているのですが、気になっている点としては、
クライアントPCをシャットダウンしたり、コピーのコマンドを停止すると
処理が止まるため、もしかすると後者の動きが正しいのでは、と考えた次第です。

また、ファイルサーバはバッファロー社のNASを使用しております。


クライアントPCのHDDがSSDのため、極力負荷をかけたくないという考えがあり
上記の質問をいたしました。
お手数ですが、お教え頂けますと幸いです。

ファイルサーバー(マスター)のデータを、ファイルサーバ(バックアップ)に
ネットワーク経由でコピーしようとしています。

コピーのコマンドを実行するのは、同じネットワーク内に設置している
クライアントPC(Windows8.1)からです。

この場合、処理の命令はクライアントPCから行いますが、データの流れとしては
以下のような認識で正しいでしょうか?

■想定しているデータの流れ
ファイルサーバー(マスター) → ファイルサーバー(バックアップ)

■想定していないデータの流れ
ファイルサーバー(マスター) → ...続きを読む

Aベストアンサー

コピーするプログラムの内部動作としてクライアントPCのメモリー上に読み込んだデータを展開してバックアップに書き込みますので、後者の動きです。実メモリー内に展開できない場合は仮想記憶としてHDD(この場合はSSD)も利用します。

前者の動きをするためには、マスターのサーバーに対して「バックアップに書き込め」という動作をさせないとだめです。


ところで、SSDの寿命をきにされているのでしたら、現行製品でしたら気にしなくても良いレベルですよ。

Q「いずれか」と「いづれか」どっちが正しい!?

教えて下さいっ!
”どちらか”と言う意味の「いずれか」のかな表記として
「いずれか」と「いづれか」のどちらが正しいのでしょう???

私は「いずれか」だと思うんですが、辞書に「いずれか・いづ--。」と書いてあり、???になってしまいました。
どちらでもいいってことでしょうか?

Aベストアンサー

「いずれか」が正しいです.
「いづれ」は「いずれ」の歴史的かな遣いですので,昔は「いづれ」が使われていましたが,現代では「いずれ」で統一することになっていますので,「いずれ」が正しいです.


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報