Программы, которые разрешают удаленные подключения (обычно в ssh), обычно запрашивают имя пользователя /pwd для подключения к удаленному серверу: см. Ниже примеры из sequelpro и rubymine соответственно:
Продолжение про: Попытка подключиться к удаленному серверу MySQL через ssh:
Rubymine: Попытка выполнить отладку на стороне сервера:
В Amazon AWS для подключения по SSH необходим закрытый ключ, а команда подключения выглядит примерно так:
ssh -i %privateKeyFileName.pem% ubuntu@server
Вопрос: Как включить этот закрытый файл, чтобы можно было успешно подключиться с помощью таких приложений, как prosql или rubymine?
Обновление: sequel pro может быть сделано изначально... как и для rubymine .. я начал с туннелирования ssh... так что вот шаги:
во-первых: я запустил процесс туннелирования ssh на моей машине, так что любой запрос, сделанный на мой порт localhost:9999, будет перенаправлен на aws ip на порт 3000:
ssh -l ubuntu -i '/path/to/cert/file/certFile.cer' -L 9999:%aws.ip%:3000 %aws.ip%
во-вторых: следуя этим инструкциям .. я связал гем debase debug с моим проектом rails .. и выполнил следующую команду:
rdebug-ide --port 3000 -- rvmsudo thin start -p 3000 -e production
в-третьих: я изменил настройки производственной отладки в моем rubymine и сделал так, чтобы он указывал на порт 3000 в моем локальном хосте следующим образом:
четвертое: я начал процесс отладки с 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'
Я знаю, что если я попытаюсь подключиться напрямую к базе данных mysql
размещенной на машине aws, непосредственно со случайного хоста, это соединение будет отклонено по той же причине. Идея состоит в том, чтобы обмануть mysql db, думая, что я на самом деле подключаюсь к нему изнутри.
технически я могу сделать то же самое: я могу создать другой ssh-туннель специально для хоста mysql, но тогда как мне дать команду rubymine подключиться к этому туннелю для db?