web-dev-qa-db-ja.com

組み込みのWindows 10 sshdを使用すると、gitリポジトリのクローンを作成できません

Windows 10には、組み込みのsshdサーバーが含まれるようになりました。つまり、Windowsマシンにあるgitリポジトリに次のようにアクセスできるはずです。

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リポジトリはmywinmachineのc:\ myrepos\repo1.gitにあります(実際には別の場所にありますが、ジャンクションを作成しました)。 (c:\ users\myid\myreposにもシンボリックリンク(ジャンクション)を作成しようとしましたが、どちらも役に立ちませんでした。)

ssh myid @ mywinmachineを実行すると、すべて問題ありません。私は正常にログインし、c:\ users\myidマシンに(cmdプロンプトに)配置されています。

MywinmachineでGitWindowsをセットアップし、任意のコマンドプロンプトから任意のgitコマンドにアクセスできるようにしました。したがって、mywinmachineで、git --versionと入力すると、正しい応答が得られます。

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

私が間違っていることは何ですか? mywinmachineにあるリポジトリにアクセスするには、git clone ssh://にどのパスを指定する必要がありますか?

私の開発ボックスはOpenBSD(6.3)であり、samba互換の共有をマウントする方法が含まれていないため(mount_smbfs、cifsなし)、Windowsディレクトリをマウントできないことに注意してください。したがって、Windowsベースのgitリポジトリにアクセスする方法を理解できるのは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
3
V P

私は同じ問題に遭遇し、私にとってうまくいったのは、OpenSSHのデフォルトのシェルをgit bash.exeに変更することです。問題はパスの引用にあるようです。

https://stackoverflow.com/questions/53834304/how-do-i-git-clone-from-a-windows-machine-over-ssh を参照してください

1
Sideshowcoder
  1. 読む ヒントとアイデア
  2. クローンの前に純粋なSSHを試してください(既存のジャンクションを使用)-ログイン、ls、cd:つまり、ユーザー/プロセスのアクセス許可を確認します(ここで問題が発生すると予想されます)

最後に、次のことができますcloneリポジトリをssh- $ HOMEにパス|権限の問題の単純化

1
Lazy Badger