%20%E3%82%92%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%20%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AB%E6%8E%A5%E7%B6%9A%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%99%E3%81%8B%3F.png)
リモート接続を許可するプログラム(通常はssh)は、通常、リモートサーバーに接続するためにユーザー名/パスワードを要求します。以下の例を参照してください。続編プロそしてルビーマイン、 それぞれ:
続編プロ:SSH 経由でリモート MySQL サーバーに接続しようとしています:
ルビーマイン:サーバー側のデバッグを試行しています:
Amazon AWSでは、SSHを使用して接続する秘密鍵が必要で、接続コマンドは次のようになります。
ssh -i %privateKeyFileName.pem% ubuntu@server
質問:prosql や rubymine などのアプリを使用して正常に接続できるようにするには、このプライベート ファイルをどのように含めればよいですか?
アップデート:続編プロはできるネイティブ.. rubymineに関しては.. 私はまずSSH トンネリング.. 手順は次のとおりです:
初め:マシン上で SSH トンネル プロセスを開始したので、localhost:9999 ポートへのリクエストはすべてポート 3000 の aws ip に転送されます。
ssh -l ubuntu -i '/path/to/cert/file/certFile.cer' -L 9999:%aws.ip%:3000 %aws.ip%
2番目:続くこれら説明書を同梱しました堕落させるRails プロジェクトで gem をデバッグし、次のコマンドを実行しました。
rdebug-ide --port 3000 -- rvmsudo thin start -p 3000 -e production
三番目:私は rubymine のプロダクション デバッグ設定を変更し、次のようにローカルホストのポート 3000 を指すようにしました。
第4:rubymine からデバッグプロセスを開始しました。
問題:デバッグ プロセスが開始されましたが、mysql サーバーに接続できないというメッセージが表示されます。
/Users/abdullahbakhach/.rvm/rubies/ruby-1.9.3-p484/bin/ruby -e at_exit{sleep(1)};$stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/abdullahbakhach/.rvm/gems/ruby-1.9.3-p484/gems/ruby-debug-ide-0.4.17/bin/rdebug-ide --port 58053 --dispatcher-port 58054 -- /Users/abdullahbakhach/dev/ruby/icars-web-application-veritopia/script/rails server -b 0.0.0.0 -p 9999 -e production
Fast Debugger (ruby-debug-ide 0.4.17, ruby-debug-base19x 0.11.30.pre12) listens on 127.0.0.1:58053
=> Booting Thin
=> Rails 3.2.13 application starting in production on http://0.0.0.0:9999
=> Call with -d to detach
=> Ctrl-C to shutdown server
/Users/abdullahbakhach/.rvm/gems/ruby-1.9.3-p484@global/gems/actionpack-3.2.13/lib/action_dispatch/http/mime_type.rb:102: warning: already initialized constant PDF
Uncaught exception: Host '78.111.131.68' is not allowed to connect to this MySQL server
Exiting
/Users/abdullahbakhach/.rvm/gems/ruby-1.9.3-p484/gems/mysql2-0.3.14/lib/mysql2/client.rb:67:in `connect'
ランダムなホストから AWS マシンにホストされている DBに直接接続しようとするとmysql
、同じ理由でその接続が拒否されることはわかっています。目的は、MySQL DB を騙して、実際に AWS 内から接続していると思わせることです。
技術的には同じことができます。つまり、mysql ホスト専用の別の ssh トンネルを作成できますが、その後、rubymine にそのトンネルに db 用に接続するように指示するにはどうすればよいでしょうか。
答え1
127.0.0.1:9876
SSHトンネリングを使用すると、ローカルポート(例:)をリモートサーバーの特定のポートに転送できます。詳細を確認するここ
要点は次のとおりです。
ssh -l <SERVER_USER> -i "<SERVER_SSH_KEY>" \
-L <local-port-to-listen>:<remote-host>:<remote-port>
<remote-host>
ここに例があります:
ssh -l ubuntu -i "/home/myuser/awskey.pem" -L \
9999:51.100.80.10:3306 51.100.80.10
上記の例では、9999
ローカル マシンのポートへのすべての要求を、宛先の SSH ポート (通常はポート ) を介してトンネリングされ、3306
宛先サーバー (IP: ) のポート (MySQL 用)に転送します。51.100.80.10
22
AWS の場合、サーバーへの SSH アクセスを有効にするには、EC2 ページのセキュリティ グループを変更する必要があります (SSH は通常ポート で実行される22
ため、そのポートへのアクセスを許可する必要があります)。
答え2
どうやら、sequelpro にはすでに SSH キーを提供するオプションが用意されているようです。(バグだと思います。ssh
オプションをクリックしてもキーのフィールドが表示されない場合は、他の 2 つのタブのいずれかに戻ってから、もう一度クリックするとssh
、次の画面が表示されます。)
アップデート:見るここSSHトンネリングを使用してSequel Proに接続する方法の詳細については、