%EC%9D%84%20%EC%9B%90%EA%B2%A9%20%EC%84%9C%EB%B2%84%EC%97%90%20%EC%97%B0%EA%B2%B0%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
원격 연결(일반적으로 ssh)을 허용하는 프로그램은 일반적으로 원격 서버에 연결하기 위해 사용자 이름/비밀번호를 요청합니다. 아래 예제를 참조하세요.속편프로그리고루비민, 각각:
속편 프로:SSH를 통해 원격 mysql 서버에 연결을 시도합니다.
루비민:서버 측 디버깅을 시도하는 중:
아마존 AWS와 함께,SSH를 사용하여 연결하려면개인 키가 필요하며 연결 명령은 다음과 같습니다.
ssh -i %privateKeyFileName.pem% ubuntu@server
질문:prosql 또는 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%
두번째:수행원이것들지침.. 내가 번들로 묶은 것가치를 떨어뜨리다내 Rails 프로젝트로 gem을 디버그하고 다음 명령을 실행했습니다.
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'
임의의 호스트에서 직접 aws 시스템에 호스팅된 DB 에 직접 연결하려고 하면 mysql
동일한 이유로 해당 연결이 거부된다는 것을 알고 있습니다. 아이디어는 실제로 aws 내에서 연결하고 있다고 생각하도록 mysql db를 속이는 것입니다.
기술적으로는 동일한 작업을 수행할 수 있습니다. 특별히 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
로컬 시스템의 포트에 대한 모든 요청을 3306
대상 서버(IP: )의 포트(MySQL용) 로 전달합니다 51.100.80.10
. 이는 대상의 SSH 포트(일반적으로 port 22
)를 통해 터널링됩니다.
AWS를 사용하면 서버에 대한 SSH 액세스를 활성화하려면 EC2 페이지에서 보안 그룹을 변경해야 합니다(SSH는 일반적으로 포트에서 실행되므로 22
해당 p에 대한 액세스를 허용해야 함).
답변2
Sequelpro가 이미 SSH 키를 제공하는 옵션을 제공하는 것으로 밝혀졌습니다.(버그인 것 같습니다.. 옵션을 클릭했는데 ssh
키에 대한 필드가 표시되지 않으면 다시 ssh
..하면 다음 화면이 표시됩니다.
업데이트:보다여기SSH 터널링을 사용하여 후속편 Pro에 연결하는 방법에 대한 자세한 논의