Git bash 在 Windows - 不支持 sftp
Git bash on Windows - sftp not supported
我想使用 GIT Bash 在服务器上上传文件。我正在为 Windows.
使用 msysgit
FTP 上传正常,但 sftp 不工作。
git ftp init --verbose
给我错误:libcurl 不支持或禁用 sftp
我试图使用此参考将 libssh2 安装到 Cygwin http://docs.oracle.com/cd/E24628_01/install.121/e22624/preinstall_req_cygwin_ssh.htm#EMBSC150
但是还是出现了错误。我不知道我是否必须直接安装一些东西到 GIT Bash 或者我还能做什么?
感谢您的任何建议。
编辑:我更新了msysgit 和其他软件,现在我只是不知道如何从服务器获取证书。从 WinSCP 我只使用接受指纹,仅此而已。
curl -v --insecure sftp://user:password@xxx.com
- 可用的 SSH 身份验证方法:public密钥、密码
- 使用 SSH public 密钥文件“(nil)”
- 使用 SSH 私钥文件'C:\Users\xxx/.ssh/id_rsa'
- SSH public 密钥认证失败:Username/PublicKey 组合无效
curl: (67) 身份验证失败
我在这里 https://github.com/git-ftp/git-ftp/issues/124 看到我可以使用另一个密钥代替我的默认密钥。但我不知道如何从服务器获取该密钥。
确保您没有将 git 与 Cygwin 或 old and obsolete msysgit 1.9.x version.
一起使用
同new git for windows, sftp
应该支持:
C:\Users\vonc\prog\seec>c:\prgs\git\PortableGit-2.6.1-64-bit\usr\bin\curl.exe -V
curl 7.44.0 (x86_64-pc-msys) libcurl/7.44.0 OpenSSL/1.0.2d zlib/1.2.8 libidn/1.32 libssh2/1.6.0
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: Debug IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets Metalink
This project which needs sftp requires only user and password without any certificate file
是的,不需要 ssl certificate with sftp,只需让 'C:\Users\xxx/.ssh/id_rsa(.pub)
'
中没有键即可
From WinSCP I use only accept fingerprint and that was it.
这可能是问题所在:known_host
必须有远程服务器指纹。请参阅 for instance my script 或此博客 post:
To get a look at the server’s public key fingerprint before attempting a connection, one can utilize the ssh-keyscan
program
ssh-keyscan -t ecdsa host.example.org > tmp
ssh-keygen -lf tmp
256 03:ed:6d:1f:ff:56:9d:5f:f3:65:20:b5:ad:55:55:87 host.example.org (ECDSA)
Here the -t
is for type of key to be scanned (which can be rsa1 for protocol version 1, dsa, ecdsa, ed25519, or rsa for protocol version 2).
The output is redirected to a temporary file named tmp
, then the file is checked with the ssh-keygen
program.
Once client has verified the fingerprint, it will store a copy of the server’s public key in $HOME/.ssh/known_hosts
and will check the stored key on subsequent connections to that host.
If the server has changed its keys, or another machine is attempting to spoof the real server, the client will notice and will not allow connections to that host.
官方 GitHub link 为 Issue。
在 Linux(Ubuntu)
中 Add Sftp-capabilities to cURL 的过程
我想使用 GIT Bash 在服务器上上传文件。我正在为 Windows.
使用 msysgitFTP 上传正常,但 sftp 不工作。
git ftp init --verbose
给我错误:libcurl 不支持或禁用 sftp
我试图使用此参考将 libssh2 安装到 Cygwin http://docs.oracle.com/cd/E24628_01/install.121/e22624/preinstall_req_cygwin_ssh.htm#EMBSC150
但是还是出现了错误。我不知道我是否必须直接安装一些东西到 GIT Bash 或者我还能做什么?
感谢您的任何建议。
编辑:我更新了msysgit 和其他软件,现在我只是不知道如何从服务器获取证书。从 WinSCP 我只使用接受指纹,仅此而已。
curl -v --insecure sftp://user:password@xxx.com
- 可用的 SSH 身份验证方法:public密钥、密码
- 使用 SSH public 密钥文件“(nil)”
- 使用 SSH 私钥文件'C:\Users\xxx/.ssh/id_rsa'
- SSH public 密钥认证失败:Username/PublicKey 组合无效
curl: (67) 身份验证失败
我在这里 https://github.com/git-ftp/git-ftp/issues/124 看到我可以使用另一个密钥代替我的默认密钥。但我不知道如何从服务器获取该密钥。
确保您没有将 git 与 Cygwin 或 old and obsolete msysgit 1.9.x version.
一起使用同new git for windows, sftp
应该支持:
C:\Users\vonc\prog\seec>c:\prgs\git\PortableGit-2.6.1-64-bit\usr\bin\curl.exe -V
curl 7.44.0 (x86_64-pc-msys) libcurl/7.44.0 OpenSSL/1.0.2d zlib/1.2.8 libidn/1.32 libssh2/1.6.0
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: Debug IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets Metalink
This project which needs sftp requires only user and password without any certificate file
是的,不需要 ssl certificate with sftp,只需让 'C:\Users\xxx/.ssh/id_rsa(.pub)
'
From WinSCP I use only accept fingerprint and that was it.
这可能是问题所在:known_host
必须有远程服务器指纹。请参阅 for instance my script 或此博客 post:
To get a look at the server’s public key fingerprint before attempting a connection, one can utilize the
ssh-keyscan
program
ssh-keyscan -t ecdsa host.example.org > tmp
ssh-keygen -lf tmp
256 03:ed:6d:1f:ff:56:9d:5f:f3:65:20:b5:ad:55:55:87 host.example.org (ECDSA)
Here the
-t
is for type of key to be scanned (which can be rsa1 for protocol version 1, dsa, ecdsa, ed25519, or rsa for protocol version 2).
The output is redirected to a temporary file namedtmp
, then the file is checked with thessh-keygen
program.Once client has verified the fingerprint, it will store a copy of the server’s public key in
$HOME/.ssh/known_hosts
and will check the stored key on subsequent connections to that host.
If the server has changed its keys, or another machine is attempting to spoof the real server, the client will notice and will not allow connections to that host.
官方 GitHub link 为 Issue。
在 Linux(Ubuntu)
中 Add Sftp-capabilities to cURL 的过程