我的存储库位于Bitbucket上。我有一台Ubuntu机器,我用它作为开发服务器(托管我所有代码的本地副本,apache,php,git等)。实际开发是在同一LAN中的Windows机器上完成的。我使用Samba共享直接访问服务器上的文件。 我使用PHPStorm作为我的IDE。我也在Windows机器上安装了git,以便在PHPStorm中使用git集成。它的工作原理是:我可以阅读存储库历史记录并提交新的更改,而不会出现问题。
但现在我想从PHPStorm推送(到bitbucket)。这就是失败的原因。
现在,我需要登录我的Ubuntu服务器以从那里推送代码。但是我希望能够从PHPStorm开始。它可能与我需要集成的ssh-keys有关,但我不知道如何。 PHPStorm告诉我以下内容:
19:22:10.873: git push --progress origin master:master
java.io.IOException: Authentication failed:
at org.jetbrains.git4idea.ssh.SSHMain.authenticate(SSHMain.java:283)
at org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:157)
at org.jetbrains.git4idea.ssh.SSHMain.main(SSHMain.java:137)
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
我已经创建了一个SSH密钥对并将公钥放在Bitbucket上。我只是不知道从哪里开始。
答案 0 :(得分:13)
如果您的git命令在命令行中运行,而不是从WebStorm内部运行,您可以尝试将WebStorm配置切换为使用“原生”而不是“内置“SSH可执行文件。
要执行此操作,请导航文件 - >的菜单设置 - >版本控制 - > Git ,然后将 SSH可执行文件下拉设置更改为“原生。”
答案 1 :(得分:10)
PhpStorm git Integration手册页确实提到了:
- ssh密钥在PhpStorm外部生成。您可以按照http://inchoo.net/tools/how-to-generate-ssh-keys-for-git-authorization/中的说明操作,或查找其他指南。
- 将ssh密钥存储在home_directory
\.ssh\
文件夹中。主目录的位置通过环境变量定义:
$HOME
用于类Unix操作系统。%userprofile%
用于Microsoft Windows操作系统。- 确保密钥存储在名称正确的文件中:
私钥的
id_rsa
。id_rsa.pub
用于公钥。
答案 2 :(得分:1)
如果您在PhpStorm&amp ;;中使用本机SSH可执行选项链接到PuTTY提供的plink.exe
,您需要至少连接一次主机服务器以接受服务器的主机密钥。缓存密钥后,您可以将私钥添加到pageant.exe
plink.exe git@github.com
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n) y
Using username "git".
Server refused to allocate pty
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
答案 3 :(得分:0)
我有这个问题。当我使用Git Bash(Windows)时,我的ssh键非常好。
我从 C:\ Users \您的用户名\ .ssh 文件夹中删除了known_hosts,PHPStorm自行创建了它并开始工作。
在我的另一个项目中,它发出以下错误:
java.io.IOException: There was a problem while connecting to 158.xxx.xxx.xxx::22
at com.trilead.ssh2.Connection.connect(Connection.java:791)
at com.trilead.ssh2.Connection.connect(Connection.java:577)
at org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:171)
at org.jetbrains.git4idea.ssh.SSHMain.main(SSHMain.java:137)
Caused by: java.net.UnknownHostException: 158.xxx.xxx.xxx:: invalid IPv6 address
at java.net.InetAddress.getAllByName(InetAddress.java:1169)
at java.net.InetAddress.getAllByName(InetAddress.java:1126)
at java.net.InetAddress.getByName(InetAddress.java:1076)
at com.trilead.ssh2.transport.TransportManager.createInetAddress(TransportManager.java:165)
at com.trilead.ssh2.transport.TransportManager.establishConnection(TransportManager.java:340)
at com.trilead.ssh2.transport.TransportManager.initialize(TransportManager.java:449)
at com.trilead.ssh2.Connection.connect(Connection.java:731)
... 3 more
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
事实证明我的GIT项目的远程网址设置错误:
ssh://myuser@myip:/home/user/myrepo
应该是:
myuser@myip:/home/user/myrepo