質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

2回答

1498閲覧

Cyberduckを利用してファイルをアップロードする方法について

k.t.est

総合スコア49

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2017/07/11 06:55

AWSを利用しておりまして、パブリックサブネット内にある踏み台サーバーを経由して、プライベートサブネットの内のEC2(目的サーバー)にファイルをアップロードする際に、cyberduckを利用したいのですが、どのように行えばいいのでしょうか?

http://digitalfarm-staffblog.com/all/2017031313/

こちらの記事を参考にして、コマンドラインでssh -L 10220:目的サーバーIP:22 踏み台USER@踏み台IP(記事では踏み台HOSTとなっていましたが、ホスト名だと踏み台サーバーにログインできませんでした)と入力し、踏み台サーバーにログイン後、cyberduck下記設定を行ったものの、timed outで接続できない状況です。

サーバー名 : localhost
ポート名 : 10220
ユーザー名 : user_name
SSH Private Key : ローカルPC上での秘密鍵へのpath

なお、使用端末はmacです。
なお、セキュリティグループの設定が間違っているのでしょうか?(踏み台サーバーから目的サーバーssh接続(ポート:22)を受けられるようにしておりますが、10220については何も設定しておりません。)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

最終的に、こちらの記事を参考にさせて頂きまして

https://cloudpack.media/9675

ssh -f -N -L 10220:xxxxx.ap-northeast-1.compute.amazonaws.com:22 [踏み台user_name]@[踏み台IP] -i [local端末の秘密鍵path]

これでトンネルを張った状態で、cyberduckで下記設定を行い、無事繋げることが出来ました。

サーバー名 : localhost
ポート名 : 10220
ユーザー名 : user_name
SSH Private Key : ローカルPC上での秘密鍵へのpath

ちなみにその後、踏み台サーバーの:/etc/ssh/sshd_config のファイルの設定から下記を削除

-AllowTCPForwarding yes
-Permit Open any

目的サーバーの:/etc/hosts.allow のファイルの設定から下記を削除
-sshd : ALL

設定を保存後、いずれのサーバーにおいてもsshdをrestartさせましたが、
トンネルが繋がった状況は維持できました。

ssh -L 10220:目的サーバーIP:22 踏み台USER@踏み台IP

では接続出来なかった理由が不明ですので、どなたか解説戴けますと幸甚です。

最後になりましたが、moonphase様丁寧にご教示頂きまして有難う御座いました。本当に助かりました。

投稿2017/07/13 05:10

k.t.est

総合スコア49

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

以下正しいか確認お願いします。

mac -> 踏み台: 踏み台のセキュリティグループ、インバウンドルールにmacからアクセスする際のグローバルIPアドレス:22が許可されていることを確認

踏み台 -> 目的サーバー: セキュリティグループで22が許可されていることを確認

投稿2017/07/11 07:58

moonphase

総合スコア6621

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

k.t.est

2017/07/11 08:28

この点は確認できております。秘密鍵を利用したssh接続については、踏み台サーバー経由して、目的サーバーにアクセス可能で御座います。
moonphase

2017/07/12 02:55

同じような構成でトンネル作ってCyberduckで接続を試みたら問題なくアクセスできました。 今一度、次を確認お願いします。 ・mac -> 踏み台 SSH接続可能かどうか ・踏み台 -> 目的サーバ SSH接続可能かどうか
k.t.est

2017/07/12 04:40

有難う御座います。おそらくセキュリティグループの設定が正しくできていないのですね。 ssh -A [user_name]@踏み台IPアドレス -i [秘密鍵のpath@local端末] これで踏み台サーバーにアクセス。その後、踏み台サーバーより ssh [user_name]@プライベートIPアドレス これで目的サーバーにアクセス可能となっております。 セキュリティグループの設定ですが、 mac -> 踏み台サーバー : type ssh 22番ポートをインバウンドルールに追加(ソースはmy ip)しております 踏み台 -> 目的サーバー : type ssh 22番ポートをインバウンドルールに追加(ソースはmac-踏み台間のセキュリティグループを指定) となっております。 よろしくお願いいたします。
moonphase

2017/07/12 05:27

SSHトンネルを張っている状態で、次のコマンドは実行できますか? ssh -p 10220 [対象サーバuser_name]@localhost -i 対象サーバにログインするための秘密鍵
k.t.est

2017/07/12 05:41

踏み台サーバーには目的サーバーにログインする為の秘密鍵をおいていない為(macにしか秘密鍵をおいていない為)、「対象サーバにログインするための秘密鍵」の部分がNo such file or directoryエラーになってしまいます。秘密鍵はmacにだけおいて置きたいのですが、それはできないのでしょうか?
k.t.est

2017/07/12 05:42

No such file or directoryとなり、 ssh -p 10220 [対象サーバuser_name]@localhost -i 対象サーバにログインするための秘密鍵 は実行できませんでした。
moonphase

2017/07/12 05:51

踏み台サーバで実行するのではなく、手元のMacで実行すればOKです。
k.t.est

2017/07/12 06:01

Macで実行した結果ですが、実行できませんでした。 トンネル張った状態で、手元macからコマンド入力したのですが、コマンド実行結果が出る前に、トンネル自体が、channel 3: open failed: connect failed: Connection timed outとなってしまいました。 その結果、手元macで実行した結果は、ssh_exchange_identification: Connection closed by remote hostとなり、実行できませんでした。
moonphase

2017/07/12 06:07

踏み台サーバ上の設定で、TCPフォワーディングが有効になっていないと思われます。 踏み台サーバ:/etc/ssh/sshd_config に以下の設定を入れて、sshdを再起動してみてください。 AllowTCPForwarding yes
k.t.est

2017/07/12 06:24

AllowTCPForwading yesがコメントアウトされていたので、#を外してsshd_configを保存、sshdをrestartし、再度トンネルを張りリトライしたのですが、結果は同じで御座いました。全く同じエラーでトンネルがtimed outになり、手元macからのコマンドがssh_exchange_identification: Connection closed by remote hostとなってしまいました。
moonphase

2017/07/12 06:51

以下も設定に入れてみてください。(私の環境では設定は存在してませんが) PermitOpen 1
k.t.est

2017/07/12 07:01

私の環境でも設定が存在しなかった為、sshd_config内のAllowTcpForwarding yesの下に追加しました。 しかしながら、「1」だとrestartできませんでした(エラー内容 : /etc/ssh/sshd_config line 118: bad port number in PermitOpen)。 そこで「PermitOpen any」としてsshdをrestartしました。 しかしながら、これでも同じエラーが発生し、 ssh -p 10220 [対象サーバuser_name]@localhost -i 対象サーバにログインするための秘密鍵 は実行できませんでした。
moonphase

2017/07/12 07:11

"ssh_exchange_identification: Connection closed by remote host" メッセージを見逃していました。 これはSSHのアクセス制御で使われているので、対象サーバの"/etc/hosts.allow"を確認してみてください。 編集可能なら sshd:ALL と追加すれば大丈夫と思います。
k.t.est

2017/07/12 07:18

目的サーバーの"/etc/hosts.allow"を編集し(このファイルは全てコメントアウトされていました)、root権限でsshd:ALLと追加・保存しました。再度トンネルを張り直して、手元macからコマンドを打ちましたら、 同じくssh_exchange_identification: Connection closed by remote hostとなってしまいました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問