2017-09-14 49 views
1

删除公共密钥文件的错误,我只是用官方视护目镜/视护目镜-RPI码头工人的形象,这是我跑as suggested安装Gogs (Go Git Server)上覆盆子PI3:视护目镜抛出一个“Permission denied”当我从客户端

docker run --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/data gogs/gogs-rpi 

我用笔记本电脑通过gogs web界面注册了一个管理员用户,并为该帐户添加了一个公钥。我现在可以使用此命令克隆从PI git仓库到我的笔记本电脑:

git clone ssh://[email protected]:10022/peter/my_repo.git 

我进入关键短语,它工作得很好。

现在奇怪的部分...当我从我的笔记本电脑中删除公钥文件(id_rsa_gogs.pub)并再次运行上述命令时,我会得到一个'访问被拒绝'的错误。

有谁知道这可能是什么?我已经在Gogs注册了公钥。为什么我需要在客户端计算机上有公钥密钥的版本?我从来没有听说过公钥需要留在客户端的情况。

Udapte

如果我的RM的.pub密钥文件并运行ssh -Tv [email protected] -p 10022 -i /home/peter/.ssh/id_rsa_gogs我得到这个:

OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g 1 Mar 2016 
debug1: Reading configuration data /home/peter/.ssh/config 
debug1: Reading configuration data /etc/ssh/ssh_config 
debug1: /etc/ssh/ssh_config line 19: Applying options for * 
debug1: Connecting to 192.168.178.50 [192.168.178.50] port 10022. 
debug1: Connection established. 
debug1: key_load_public: No such file or directory 
debug1: identity file /home/peter/.ssh/id_rsa_gogs type -1 
debug1: key_load_public: No such file or directory 
debug1: identity file /home/peter/.ssh/id_rsa_gogs-cert type -1 
debug1: Enabling compatibility mode for protocol 2.0 
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.2 
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.4 
debug1: match: OpenSSH_7.4 pat OpenSSH* compat 0x04000000 
debug1: Authenticating to 192.168.178.50:10022 as 'git' 
debug1: SSH2_MSG_KEXINIT sent 
debug1: SSH2_MSG_KEXINIT received 
debug1: kex: algorithm: [email protected] 
debug1: kex: host key algorithm: ecdsa-sha2-nistp256 
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none 
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none 
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY 
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:[REMOVED] 
debug1: Host '[192.168.178.50]:10022' is known and matches the ECDSA host key. 
debug1: Found key in /home/peter/.ssh/known_hosts:18 
debug1: rekey after [REMOVED] blocks 
debug1: SSH2_MSG_NEWKEYS sent 
debug1: expecting SSH2_MSG_NEWKEYS 
debug1: rekey after [REMOVED] blocks 
debug1: SSH2_MSG_NEWKEYS received 
debug1: SSH2_MSG_EXT_INFO received 
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521> 
debug1: SSH2_MSG_SERVICE_ACCEPT received 
debug1: Authentications that can continue: publickey,keyboard-interactive 
debug1: Next authentication method: publickey 
debug1: Trying private key: /home/peter/.ssh/id_rsa_gogs 
Enter passphrase for key '/home/peter/.ssh/id_rsa_gogs': 
debug1: Authentication succeeded (publickey). 
Authenticated to 192.168.178.50 ([192.168.178.50]:10022). 
debug1: channel 0: new [client-session] 
debug1: Requesting [email protected] 
debug1: Entering interactive session. 
debug1: pledge: network 
debug1: client_input_global_request: rtype [email protected] want_reply 0 
debug1: Remote: Forced command. 
debug1: Remote: Port forwarding disabled. 
debug1: Remote: X11 forwarding disabled. 
debug1: Remote: Agent forwarding disabled. 
debug1: Remote: PTY allocation disabled. 
debug1: Sending environment. 
debug1: Sending env LC_TELEPHONE = de_DE.UTF-8 
debug1: Sending env LANG = en_US.UTF-8 
debug1: Sending env LC_NAME = de_DE.UTF-8 
debug1: Sending env LC_MEASUREMENT = de_DE.UTF-8 
debug1: Sending env LC_IDENTIFICATION = de_DE.UTF-8 
debug1: Sending env LC_MONETARY = de_DE.UTF-8 
debug1: Sending env LC_PAPER = de_DE.UTF-8 
debug1: Sending env LC_ADDRESS = de_DE.UTF-8 
debug1: Sending env LC_NUMERIC = de_DE.UTF-8 
Hi there, You've successfully authenticated, but Gogs does not provide shell access. 
If this is unexpected, please log in with password and setup Gogs under another user. 
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0 
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 0 
debug1: channel 0: free: client-session, nchannels 1 
Transferred: sent 3268, received 3096 bytes, in 0.2 seconds 
Bytes per second: sent 15416.0, received 14604.6 
debug1: Exit status 0 

看来,如果我跑ssh -Tv [email protected] -p 10022失败(不直接指定密钥文件):

OpenSSH_7.2p2 Ubuntu-4ubuntu2.2, OpenSSL 1.0.2g 1 Mar 2016 
debug1: Reading configuration data /home/peter/.ssh/config 
debug1: Reading configuration data /etc/ssh/ssh_config 
debug1: /etc/ssh/ssh_config line 19: Applying options for * 
debug1: Connecting to 192.168.178.50 [192.168.178.50] port 10022. 
debug1: Connection established. 
debug1: key_load_public: No such file or directory 
debug1: identity file /home/peter/.ssh/id_rsa type -1 
debug1: key_load_public: No such file or directory 
debug1: identity file /home/peter/.ssh/id_rsa-cert type -1 
debug1: key_load_public: No such file or directory 
debug1: identity file /home/peter/.ssh/id_dsa type -1 
debug1: key_load_public: No such file or directory 
debug1: identity file /home/peter/.ssh/id_dsa-cert type -1 
debug1: key_load_public: No such file or directory 
debug1: identity file /home/peter/.ssh/id_ecdsa type -1 
debug1: key_load_public: No such file or directory 
debug1: identity file /home/peter/.ssh/id_ecdsa-cert type -1 
debug1: key_load_public: No such file or directory 
debug1: identity file /home/peter/.ssh/id_ed25519 type -1 
debug1: key_load_public: No such file or directory 
debug1: identity file /home/peter/.ssh/id_ed25519-cert type -1 
debug1: Enabling compatibility mode for protocol 2.0 
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.2 
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.4 
debug1: match: OpenSSH_7.4 pat OpenSSH* compat [REMOVED] 
debug1: Authenticating to 192.168.178.50:10022 as 'git' 
debug1: SSH2_MSG_KEXINIT sent 
debug1: SSH2_MSG_KEXINIT received 
debug1: kex: algorithm: [email protected] 
debug1: kex: host key algorithm: ecdsa-sha2-nistp256 
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none 
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none 
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY 
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:[REMOVED] 
debug1: Host '[192.168.178.50]:10022' is known and matches the ECDSA host key. 
debug1: Found key in /home/peter/.ssh/known_hosts:[REMOVED] 
debug1: rekey after [REMOVED] blocks 
debug1: SSH2_MSG_NEWKEYS sent 
debug1: expecting SSH2_MSG_NEWKEYS 
debug1: rekey after [REMOVED] blocks 
debug1: SSH2_MSG_NEWKEYS received 
debug1: SSH2_MSG_EXT_INFO received 
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521> 
debug1: SSH2_MSG_SERVICE_ACCEPT received 
debug1: Authentications that can continue: publickey,keyboard-interactive 
debug1: Next authentication method: publickey 
debug1: Trying private key: /home/peter/.ssh/id_rsa 
debug1: Trying private key: /home/peter/.ssh/id_dsa 
debug1: Trying private key: /home/peter/.ssh/id_ecdsa 
debug1: Trying private key: /home/peter/.ssh/id_ed25519 
debug1: Next authentication method: keyboard-interactive 
debug1: Authentications that can continue: publickey,keyboard-interactive 
debug1: No more authentication methods to try. 
Permission denied (publickey,keyboard-interactive). 

检查是否同样的问题出现wh注册并使用没有任何密码的ssh密钥。

结果是一样的,没有密码。

我不知道它的问题,但我有这里面~/.ssh/config视护目镜

Host 192.168.178.50:10022 
    HostName 192.168.178.50:10022 
    IdentityFile ~/.ssh/id_rsa_gogs 
    User Peter 

回答

2
Host 192.168.178.50:10022 
    HostName 192.168.178.50:10022 
    IdentityFile ~/.ssh/id_rsa_gogs 
    User Peter 

ssh不接受端口号的任一HostHostname此选项的一部分。因此,它不承认此条目应该适用于您的连接尝试,并且不会应用身份文件或用户。

如果你只需要相匹配的IP地址,这应该工作:

Host 192.168.178.50 
    Port 10022 
    IdentityFile ~/.ssh/id_rsa_gogs 
    User Peter 

如果你真的需要相匹配的端口上,这应该工作:

Match host 192.168.178.50 exec "test %p = 10022" 
    IdentityFile ~/.ssh/id_rsa_gogs 
    User Peter 

这将运行test命令来测试端口值。 “%p”将被ssh在该点使用的端口值替换(缺省值为22或命令行中的值)。测试也被称为[;它是一个命令行工具,主要用在shell脚本中作为if语句的一部分。

1

,以了解什么是真正导致错误尝试的ssh -Tv [email protected] -p 10022 -i /home/peter/.ssh/id_rsa_gogs

检查是否在注册和使用ssh密钥时看到相同问题没有任何密码短语。 (即使public keys don't have the passphrase

+0

感谢您的回答!我已经更新了这个问题。 – Rotareti

+0

@Rotareti尝试重命名你的'/ home/peter/.ssh/config',看看是否选择了默认的id_rsa键。 – VonC

+0

'mv config back_config'后情况保持不变。只有'ssh -Tv'输出后才显示第2行和第3行。 – Rotareti

相关问题