Search code examples
ruby-on-railsgitsshbitbucket

Shell access is disabled with bitbucket from remote server


I have added my cat ~/.ssh/id_rsa.pub from my remote server to bitbucket ssh keys.

However when I try connect from my remote server with bitbucket I get:

PTY allocation request failed on channel 0
conq: logged in as hyperrjas.
You can use git or hg to connect to Bitbucket. Shell access is disabled.

I have changed the default ssh port (22) to other port in my remote server. I don't know if this is the problem.

This is the debug when I enter ssh -v git@bitbucket.org from my remote server.

OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to bitbucket.org [111.111.111.111] port 22.
debug1: Connection established.
debug1: identity file /home/hyperrjas/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /home/hyperrjas/.ssh/id_rsa-cert type -1
debug1: identity file /home/hyperrjas/.ssh/id_dsa type -1
debug1: identity file /home/hyperrjas/.ssh/id_dsa-cert type -1
debug1: identity file /home/hyperrjas/.ssh/id_ecdsa type -1
debug1: identity file /home/hyperrjas/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40
debug1: Host 'bitbucket.org' is known and matches the RSA host key.
debug1: Found key in /home/hyperrjas/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/hyperrjas/.ssh/id_rsa
debug1: Remote: Forced command: conq username:hyperrjas
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: key_parse_private_pem: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/home/hyperrjas/.ssh/id_rsa': 
debug1: read PEM private key done: type RSA
debug1: Remote: Forced command: conq username:hyperrjas
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Authentication succeeded (publickey).
Authenticated to bitbucket.org ([111.111.111.111]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
PTY allocation request failed on channel 0
conq: logged in as hyperrjas.

You can use git or hg to connect to Bitbucket. Shell access is disabled.
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug1: channel 0: free: client-session, nchannels 1
Connection to bitbucket.org closed.
Transferred: sent 3072, received 2904 bytes, in 0.2 seconds
Bytes per second: sent 17083.9, received 16149.7
debug1: Exit status 0

I'm trying make a deploy with capistrano:

cap deploy:setup
  * 2013-04-05 00:10:19 executing `deploy:setup'
  * executing "mkdir -p /home/hyperrjas/apps/myapp /home/hyperrjas/apps/myapp/releases /home/hyperrjas/apps/myapp/shared /home/hyperrjas/apps/myapp/shared/system /home/hyperrjas/apps/myapp/shared/log /home/hyperrjas/apps/myapp/shared/pids"
    servers: ["REMOTESERVERIP"]
connection failed for: REMOTESERVERIP (Errno::ECONNREFUSED: Connection refused - connect(2))

I have changed real bitbucket ip by 111.111.111.111. Also I have added passphrase for security reasons on my remote server

Where have I the error?


Solution

  • The problem was in the port. If you change the ssh port on your remote server.

    You should not forget that you have to specify the SSH port on your your recipe to deploy with capistrano. Beware of this because I've gone crazy for two hours and apparently everything was correct and can make you lose a lot of time.

    You can tell to capistrano the ssh port of the remote server, adding this command to your deploy.rb file:

    ssh_options[:port] = 11111 #replace your real ssh port instead 11111
    

    Thank you very much.