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

Используя встроенный sshd Windows 10, невозможно клонировать репозиторий git

Windows 10 теперь включает встроенный sshd-сервер. Это означает, что я должен иметь доступ к своим репозиториям git, расположенным на компьютере с Windows, с помощью

git clone ssh://myid@mywinmachine/myrepos/repo1.git  

Однако вышеуказанное не работает. я получаю

fatal: ''/myrepos/repo1.git'' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

Я думаю, что проблема в том, что на mywinmachine неправильно указан каталог моего репозитория git.

И я не знаю, как это решить. Мой репозиторий git находится по адресу c: \ myrepos \ repo1.git на mywinmachine (на самом деле он находится в другом месте, но я создал перекресток). (Я также пытался иметь символическую ссылку (соединение) в c: \ users \ myid \ myrepos - тоже не помогло.)

когда я делаю ssh myid @ mywinmachine, все в порядке. Я вхожу в систему нормально, и меня помещают на компьютер c: \ users \ myid (в командной строке).

Я установил Git Windows на mywinmachine, так что любая команда git доступна из любой командной строки). Итак, если я на mywinmachine наберу: git --version, я получу правильные ответы

myid@mywinmachine C:\Users\myid>git --version
git version 2.18.0.windows.1

Что я делаю не так? Какой путь я должен указывать для git clone ssh:// , чтобы попасть в мои репозитории, расположенные на mywinmachine?

Обратите внимание: я не могу смонтировать каталог Windows, потому что мой ящик разработки - OpenBSD (6.3), и в нем нет способа монтировать совместимые с samba общие ресурсы ... (без mount_smbfs, без cifs). Так что единственное, что я мог понять, как получить доступ к моим репозиториям git на базе Windows, это ssh ... и это привело меня в эту «кроличью нору».

Я не использую аутентификацию на основе ключей, используя интерактивный пароль.

sshd_config - это значение по умолчанию, которое было установлено Windows. Я не вносил в него никаких изменений.

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

#HostKey __PROGRAMDATA__/ssh/ssh_host_rsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_dsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ecdsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ed25519_key

# Ciphers and keying
#RekeyLimit default none

# Logging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

#PubkeyAuthentication yes

# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile  .ssh/authorized_keys

#AuthorizedPrincipalsFile none

# For this to work you will also need host keys in %programData%/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no

#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
#PermitTTY yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#PermitUserEnvironment no
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none

# no default banner path
#Banner none

# override default of no subsystems
Subsystem   sftp    sftp-server.exe

# Example of overriding settings on a per-user basis
#Match User anoncvs
#   AllowTcpForwarding no
#   PermitTTY no
#   ForceCommand cvs server

Я столкнулся с той же проблемой, и у меня сработало изменение оболочки по умолчанию для OpenSSH на git bash.exe. Проблема, похоже, связана с цитированием пути.

Видеть https://stackoverflow.com/questions/53834304/how-do-i-git-clone-from-a-windows-machine-over-ssh

  1. Читать для подсказок и идей
  2. Попробуйте чистый SSH перед клонированием (с существующим соединением) - логин, ls, cd: т.е. проверьте права доступа пользователя / процесса (скорее всего, здесь возникнут проблемы)

Наконец-то ты можешь клон ваше репо в ssh- $ HOME для пути | упрощение проблемы с разрешениями