На сервере разработки развернул git-репозиторий. Создал на этом сервере пользователя git, задал ему пароль. В файл authorized_keys добавил публичный ключ, чтобы к серверу можно было подключаться без пароля.
На домашнем компьютере в терминале я набираю команду ssh <адрес_сервера_разработки>, но всё равно появляется запрос на ввод пароля от пользователя git.
Когда хочу склонировать git-репозиторий на свой домашний компьютер, то возникает такая же проблема.
P.S.: На домашнем компьютере в терминале выполнил eval $(ssh-agent -s) и ssh-add ~/.ssh/devserver, но это всё равно не помогло. Запрашивает пароль от пользователя git.
Как сделать так, чтобы я мог клонировать на мой домашний компьютер git-репозиторий без запрашивания пароля, а только по ключу? Спасибо!
*UPDATE: В общем, пересоздал пользователя git и, не заходя в него, сразу расставил права:
1. sudo -u git chmod 700 /home/git/.ssh
2. sudo -u git chmod 600 /home/git/.ssh/authorized_keys
И только потом надо входить. После этого всё заработало. Всем спасибо!
ssh -v -i ~/.ssh/devserver git@<адрес_сервера_разработки>
Так будет куда более понятно, что происходит с авторизацией.
Далее, где лежит приватный ключик у вас локально?
Какие права на authorized_keys? authorized_keys лежит в .ssh/ в домашней папке нужного пользователя?
P.S. Вообще, переносить ключик удобно с помощью ssh-copy-id.
В конфиге ssh-сервера опция PasswordAuthentication должна быть yes? Она сейчас у меня стоит как PasswordAuthentication yes. Обязательно ли её ставить no? Просто я хотел, чтобы один пользователь мог по ssh заходить с помощью ключа, а другой с помощью пароля. Такое возможно?
Без разницы - если отключите, не сможете по паролю зайти вообще. Pubkey имеет выше приоритет всё равно.
Любой может войти по ключу, если это не отключено через PubkeyAuthentication.
Что в отладке ssh выдало, запускали с -v как я вам советовал выше?
OpenSSH_7.5p1, OpenSSL 1.0.2k 26 Jan 2017
debug1: Reading configuration data /c/Users/User/.ssh/config
debug1: /c/Users/User/.ssh/config line 1: Applying options for dev-srv
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to dev.devsrv.local [192.168.1.45] port 28422.
debug1: Connection established.
debug1: identity file /c/Users/User/.ssh/devserver type 1
debug1: key_load_public: No such file or directory
debug1: identity file /c/Users/User/.ssh/devserver-cert type -1
debug1: identity file /c/Users/User/.ssh/devserver type 1
debug1: key_load_public: No such file or directory
debug1: identity file /c/Users/User/.ssh/devserver-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.5
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.7p1 Debian-5+deb8u3
debug1: match: OpenSSH_6.7p1 Debian-5+deb8u3 pat OpenSSH* compat 0x04000000
debug1: Authenticating to dev.devsrv.local:28422 as 'git'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256@libssh.org
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:2N6tLwNgUROiR98wR2HaUwvNpl4KDYyf4Lap5sfnfGw
debug1: Host '[dev.devsrv.local]:28422' is known and matches the ECDSA host key.
debug1: Found key in /c/Users/User/.ssh/known_hosts:13
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /c/Users/User/.ssh/devserver
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: /c/Users/User/.ssh/devserver
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: password
Ну со стороны клиента мы ключик нужный публичный предлагаем, но увы. Дальше надо смотреть лог авторизации на сервере. В нём будет причина проблемы. Хотя бы определились с тем, на какой стороне проблема. Поглядите во что-нибудь типа /var/log/auth.log что-то там есть интересное?
Иван Корюков, да, все права расставлены уже были. И StrictModes стоит yes. Наверное проблема в том, что у меня включена опция PasswordAuthentication yes.