Я пытаюсь настроить GIT с использованием режима SSH. Центральный репозиторий GIT находится на устройстве NAS под управлением сервера Windows 2008, а пользовательский репозиторий GIT — на Ubuntu 12.04.
Однако когда я пытаюсь подключиться по SSH к машине с Windows, мне не удаётся войти.
Ключи SSH не настроены, но я думаю, что проблема даже до этого, так как я не могу войти, просто указав правильный пароль. Вывод команды SSH ниже.
dba@clpserv01:~$ ssh -v -l administrator clpnas
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 clpnas [***.***.***.***] port 22.
debug1: Connection established.
debug1: identity file /home/dba/.ssh/id_rsa type -1
debug1: identity file /home/dba/.ssh/id_rsa-cert type -1
debug1: identity file /home/dba/.ssh/id_dsa type -1
debug1: identity file /home/dba/.ssh/id_dsa-cert type -1
debug1: identity file /home/dba/.ssh/id_ecdsa type -1
debug1: identity file /home/dba/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.5p1 Debian-6+squeeze2
debug1: match: OpenSSH_5.5p1 Debian-6+squeeze2 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 bd:37:d1:98:51:2a:d6:b5:f5:c7:98:d8:74:2c:4e:cd
debug1: Host 'clpnas' is known and matches the RSA host key.
debug1: Found key in /home/dba/.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,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Trying private key: /home/dba/.ssh/id_rsa
debug1: Trying private key: /home/dba/.ssh/id_dsa
debug1: Trying private key: /home/dba/.ssh/id_ecdsa
debug1: Next authentication method: keyboard-interactive
Password:
debug1: Authentications that can continue: publickey,password,keyboard-interactive
Password:
решение1
Первое, что нужно сделать, это проверить права доступа к домашней папке.
Выполните следующие команды из командной строки *nix:
1) перейдите в свой домашний каталог:
cd ~
2) проверьте права доступа к домашнему каталогу:
ls -dl
(if that doesn't work, try sudo -dl)
Результаты должны выглядеть примерно так:
drw------- 10 shaheed shaheed 4096 Nov 20 09:44 .
Символы со второго по четвертый указывают разрешения для пользователя, которые в данном случае должны быть rw-
, или чтение/запись. ПРИМЕЧАНИЕ: если вместо этого написано rwx
, то проблема в этом. ssh не хочет, чтобы домашний каталог имел права на запись из-за проблем безопасности.
Я предполагаю, что ваш текст звучит примерно так:
drwx------ 10 shaheed shaheed 4096 Nov 20 09:44 .
Буква x на четвертой позиции указывает на то, что у пользователя есть права на выполнение каталога. Это табу.
Чтобы исправить эту ситуацию, используйте следующую команду для удаления разрешения на выполнение:
chmod 600 .
Затем выполните следующую команду, чтобы убедиться, что разрешения установлены правильно:
ls -dl
Вы должны получить следующее сообщение:
ls: cannot access .: Permission denied
это означает, что у вас больше нет прав на выполнение, что хорошо.
Следующий запуск:
sudo ls -dl
и вы сможете убедиться, что все есть любовь! Результат должен быть похож на:
drw------- 10 shaheed shaheed 4096 Nov 20 09:44 .
Теперь вы сможете использовать ssh без запроса пароля пользователя git.