Назад | Перейти на главную страницу

ssh команды git, аутентифицируемые с помощью authorized_keys

У меня есть облачный сервер amazon ec2 под управлением Ubuntu 12.04.3 LTS (GNU / Linux 3.2.0-52-virtual x86_64). У меня установлен gitlab с использованием образа bitnami. SSH-клонирование репозиториев не работает.

Я не могу войти как git через ssh с ключом ssh

    ➜  front-end git:(develop) ssh -vT git@cloud.redrockrim.org
    OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
    debug1: Reading configuration data /etc/ssh_config
    debug1: /etc/ssh_config line 20: Applying options for *
    debug1: Connecting to cloud.redrockrim.org [54.229.74.10] port 22.
    debug1: Connection established.
    debug1: identity file /Users/redrockrim/.ssh/id_rsa type 1
    debug1: identity file /Users/redrockrim/.ssh/id_rsa-cert type -1
    debug1: identity file /Users/redrockrim/.ssh/id_dsa type -1
    debug1: identity file /Users/redrockrim/.ssh/id_dsa-cert type -1
    debug1: Enabling compatibility mode for protocol 2.0
    debug1: Local version string SSH-2.0-OpenSSH_6.2
    debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1.1
    debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1.1 pat OpenSSH_5*
    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 54:52:a4:7c:bf:45:bc:89:b5:7f:ae:59:2d:d6:e2:11
    debug1: Host 'cloud.redrockrim.org' is known and matches the RSA host key.
    debug1: Found key in /Users/redrockrim/.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,password
    debug1: Next authentication method: publickey
    debug1: Offering RSA public key: /Users/redrockrim/.ssh/id_rsa
    debug1: Authentications that can continue: publickey,password
    debug1: Trying private key: /Users/redrockrim/.ssh/id_dsa
    debug1: Next authentication method: password
    git@cloud.redrockrim.org's password: 

Я могу войти в систему, используя ssh, как другой созданный мной пользователь.

    ➜  front-end git:(develop) ssh -vT redrockrim@cloud.redrockrim.org
    OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
    debug1: Reading configuration data /etc/ssh_config
    debug1: /etc/ssh_config line 20: Applying options for *
    debug1: Connecting to cloud.redrockrim.org [54.229.74.10] port 22.
    debug1: Connection established.
    debug1: identity file /Users/redrockrim/.ssh/id_rsa type 1
    debug1: identity file /Users/redrockrim/.ssh/id_rsa-cert type -1
    debug1: identity file /Users/redrockrim/.ssh/id_dsa type -1
    debug1: identity file /Users/redrockrim/.ssh/id_dsa-cert type -1
    debug1: Enabling compatibility mode for protocol 2.0
    debug1: Local version string SSH-2.0-OpenSSH_6.2
    debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1.1
    debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1.1 pat OpenSSH_5*
    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 54:52:a4:7c:bf:45:bc:89:b5:7f:ae:59:2d:d6:e2:11
    debug1: Host 'cloud.redrockrim.org' is known and matches the RSA host key.
    debug1: Found key in /Users/redrockrim/.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,password
    debug1: Next authentication method: publickey
    debug1: Offering RSA public key: /Users/redrockrim/.ssh/id_rsa
    debug1: Server accepts key: pkalg ssh-rsa blen 277
    debug1: read PEM private key done: type RSA
    debug1: Authentication succeeded (publickey).
    Authenticated to cloud.redrockrim.org ([54.229.74.10]: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_IE.UTF-8
    debug1: Sending env LC_CTYPE = en_IE.UTF-8
    Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.2.0-52-virtual x86_64)
           ___ _ _   _  _            _  
          | _ |_) |_| \| |__ _ _ __ (_) 
          | _ \ |  _| .` / _` | '  \| | 
          |___/_|\__|_|\_\__,_|_|_|_|_| 

      *** Welcome to the BitNami GitLab 6.0.0-0 ***
      *** BitNami Wiki:   http://wiki.bitnami.com/ ***
      *** BitNami Forums: http://community.bitnami.com/ ***

Что я могу попытаться решить эту проблему?

Возможности SSH можно подавить, добавив параметры в начало ключа в authorization_keys. Здесь происходит то, что сервер мешает вашему git Пользователь не имеет полного / открытого доступа к серверу с этим конкретным ключом, но позволяет только очень целевое соединение ... что обычно вам нужно.

Если вы хотите подключиться от имени этого пользователя, удалите преамбулу перед ssh-rsa, хотя это все не зря. Вы по-прежнему можете подключиться как другой пользователь и su git как только вы окажетесь на сервере ... если по какой-то причине важно быть этим пользователем.

Варианты означают:

command="/opt/bitnami/apps/gitlab/gitlab-shell/bin/gitlab-shell key-3"

Означает, что эта команда выполняется при каждом подключении. Нет Команда может быть предоставлена ​​пользователем.

no-port-forwarding

Предотвращает пересылку TCP

no-X11-forwarding

Предотвращает пересылку X11

no-agent-forwarding

Предотвращает пересылку агента

no-pty

Предотвращает выделение TTY - то, что вы, вероятно, в основном используете в ssh для выполнения команд на удаленном сервере.

Все это можно найти на ssh (8) справочная страница