尝试使用 SSH 连接服务器时,SSH 权限被拒绝(公钥)

尝试使用 SSH 连接服务器时,SSH 权限被拒绝(公钥)

这是我第一次尝试使用 SSH 连接到服务器。我从高级开发人员那里得到了详细信息,但当我尝试连接时,我收到有关权限被拒绝(公钥)的错误。

我尝试使用调试参数运行 SSH 命令,但它给出了一串我无法理解的输出列表。

这是我正在运行的命令

ssh -vvv [youruser]@[yourLinode]

下面是输出

OpenSSH_8.5p1, OpenSSL 1.1.1j  16 Feb 2021
debug1: Reading configuration data /etc/ssh/ssh_config
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts' -> '/c/Users/pc8/.ssh/known_hosts'
debug3: expanded UserKnownHostsFile '~/.ssh/known_hosts2' -> '/c/Users/pc8/.ssh/known_hosts2'
debug2: resolving "[yourLinode]" port 22
debug3: ssh_connect_direct: entering
debug1: Connecting to [yourLinode] [54.213.195.223] port 22.
debug3: set_sock_tos: set socket 3 IP_TOS 0x48
debug1: Connection established.
debug1: identity file /c/Users/pc8/.ssh/id_rsa type -1
debug1: identity file /c/Users/pc8/.ssh/id_rsa-cert type -1
debug1: identity file /c/Users/pc8/.ssh/id_dsa type -1
debug1: identity file /c/Users/pc8/.ssh/id_dsa-cert type -1
debug1: identity file /c/Users/pc8/.ssh/id_ecdsa type -1
debug1: identity file /c/Users/pc8/.ssh/id_ecdsa-cert type -1
debug1: identity file /c/Users/pc8/.ssh/id_ecdsa_sk type -1
debug1: identity file /c/Users/pc8/.ssh/id_ecdsa_sk-cert type -1
debug1: identity file /c/Users/pc8/.ssh/id_ed25519 type -1
debug1: identity file /c/Users/pc8/.ssh/id_ed25519-cert type -1
debug1: identity file /c/Users/pc8/.ssh/id_ed25519_sk type -1
debug1: identity file /c/Users/pc8/.ssh/id_ed25519_sk-cert type -1
debug1: identity file /c/Users/pc8/.ssh/id_xmss type -1
debug1: identity file /c/Users/pc8/.ssh/id_xmss-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_8.5
debug1: Remote protocol version 2.0, remote software version Platform.sh
debug1: compat_banner: no match: Platform.sh
debug2: fd 3 setting O_NONBLOCK
debug1: Authenticating to [yourLinode]:22 as '[youruser]'
debug3: record_hostkey: found key type RSA in file /c/Users/pc8/.ssh/known_hosts:2
debug3: load_hostkeys_file: loaded 1 keys from [yourLinode]
debug3: record_hostkey: found key type RSA in file /c/Users/pc8/.ssh/known_hosts2:2
debug3: load_hostkeys_file: loaded 1 keys from [yourLinode]
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory
debug3: order_hostkeyalgs: prefer hostkeyalgs: [email protected],[email protected],[email protected],rsa-sha2-512,rsa-sha2-256,ssh-rsa
debug3: send packet: type 20
debug1: SSH2_MSG_KEXINIT sent
debug3: receive packet: type 20
debug1: SSH2_MSG_KEXINIT received
debug2: local client KEXINIT proposal
debug2: KEX algorithms: curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group14-sha256,ext-info-c
debug2: host key algorithms: [email protected],[email protected],[email protected],rsa-sha2-512,rsa-sha2-256,ssh-rsa,[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,[email protected],[email protected]
debug2: ciphers ctos: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected],aes128-cbc,3des-cbc,aes256-cbc,aes192-cbc
debug2: ciphers stoc: [email protected],aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected],aes128-cbc,3des-cbc,aes256-cbc,aes192-cbc
debug2: MACs ctos: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: MACs stoc: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1
debug2: compression ctos: none,[email protected],zlib
debug2: compression stoc: none,[email protected],zlib
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug2: peer server KEXINIT proposal
debug2: KEX algorithms: [email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1,ext-info-s
debug2: host key algorithms: rsa-sha2-256,rsa-sha2-512,ssh-rsa
debug2: ciphers ctos: [email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
debug2: ciphers stoc: [email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
debug2: MACs ctos: [email protected],hmac-sha2-256
debug2: MACs stoc: [email protected],hmac-sha2-256
debug2: compression ctos: none
debug2: compression stoc: none
debug2: languages ctos:
debug2: languages stoc:
debug2: first_kex_follows 0
debug2: reserved 0
debug1: kex: algorithm: [email protected]
debug1: kex: host key algorithm: rsa-sha2-512
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none
debug3: send packet: type 30
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug3: receive packet: type 31
debug1: SSH2_MSG_KEX_ECDH_REPLY received
debug1: Server host key: ssh-rsa SHA256:0k+lbQiTn4QgfmNupriYGozTdTOG9u6E5OxwhxWkHlk
debug3: record_hostkey: found key type RSA in file /c/Users/pc8/.ssh/known_hosts:2
debug3: load_hostkeys_file: loaded 1 keys from [yourLinode]
debug3: record_hostkey: found key type RSA in file /c/Users/pc8/.ssh/known_hosts2:2
debug3: load_hostkeys_file: loaded 1 keys from [yourLinode]
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory
debug1: Host '[yourLinode]' is known and matches the RSA host key.
debug1: Found key in /c/Users/pc8/.ssh/known_hosts:2
debug3: send packet: type 21
debug2: set_newkeys: mode 1
debug1: rekey out after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug3: receive packet: type 21
debug1: SSH2_MSG_NEWKEYS received
debug2: set_newkeys: mode 0
debug1: rekey in after 134217728 blocks
debug1: Will attempt key: /c/Users/pc8/.ssh/id_rsa
debug1: Will attempt key: /c/Users/pc8/.ssh/id_dsa
debug1: Will attempt key: /c/Users/pc8/.ssh/id_ecdsa
debug1: Will attempt key: /c/Users/pc8/.ssh/id_ecdsa_sk
debug1: Will attempt key: /c/Users/pc8/.ssh/id_ed25519
debug1: Will attempt key: /c/Users/pc8/.ssh/id_ed25519_sk
debug1: Will attempt key: /c/Users/pc8/.ssh/id_xmss
debug2: pubkey_prepare: done
debug3: send packet: type 5
debug3: receive packet: type 7
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,[email protected],ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,[email protected]>
debug3: receive packet: type 6
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey
debug3: start over, passed a different list publickey
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /c/Users/pc8/.ssh/id_rsa
debug3: no such identity: /c/Users/pc8/.ssh/id_rsa: No such file or directory
debug1: Trying private key: /c/Users/pc8/.ssh/id_dsa
debug3: no such identity: /c/Users/pc8/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /c/Users/pc8/.ssh/id_ecdsa
debug3: no such identity: /c/Users/pc8/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: /c/Users/pc8/.ssh/id_ecdsa_sk
debug3: no such identity: /c/Users/pc8/.ssh/id_ecdsa_sk: No such file or directory
debug1: Trying private key: /c/Users/pc8/.ssh/id_ed25519
debug3: no such identity: /c/Users/pc8/.ssh/id_ed25519: No such file or directory
debug1: Trying private key: /c/Users/pc8/.ssh/id_ed25519_sk
debug3: no such identity: /c/Users/pc8/.ssh/id_ed25519_sk: No such file or directory
debug1: Trying private key: /c/Users/pc8/.ssh/id_xmss
debug3: no such identity: /c/Users/pc8/.ssh/id_xmss: No such file or directory
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
[youruser]@[yourLinode]: Permission denied (publickey).

看到这些步骤,我还是不太明白。我看到一个错误,提示文件未找到。截图

在此处输入图片描述

有人能建议我是否需要修复这个错误才能连接到服务器吗?如果是,请告诉我需要在哪里创建这个文件(/etc/ssh/ssh_known_hosts)。

此外,如果这不是错误,那么有人可以帮助我理解调试步骤并指导我可能出现的问题。

我正在 Windows 机器上使用 GitBash 连接到服务器。

如果我需要提供更多详细信息,请告诉我。

答案1

您突出显示的行看起来像是错误,但这是正常的。往上几行,您可以看到您的客户端成功找到了一个名为 known_hosts 的文件,并在那里找到了远程主机密钥。此文件不是成功连接所必需的,但 SSH 客户端使用它来跟踪它已经信任的密钥,因此您只需检查一次密钥指纹。

真正的问题显而易见,就在您粘贴的输出末尾:服务器端仅支持公钥身份验证,但客户端在任何常见位置都找不到私钥 SSH,因此无法向服务器验证您的身份。在修复此问题之前,您将无法连接。

您发布的调试信息包含以下行:

debug1: Remote protocol version 2.0, remote software version Platform.sh

这意味着您正在尝试连接到由 Platform.sh 托管的环境。您可以在公共文档中找到有关如何使其工作的更多信息,网址为:使用 SSH 安全连接。您可以安装 Platform.sh CLI 并让它自动为您配置 SSH 客户端,也可以生成你自己的公钥/私钥对, 进而将公钥添加到您的Platform.sh帐户。 您可以使用GitHub 上的本指南要了解如何生成密钥,它应该可以在 Windows 上的 Git Bash 中正常工作。

如果您要经常与项目交互,您会发现在安装 Platform.sh CLI 后这样做更方便,但如果您不愿意,您可以在没有 CLI 的情况下生成和添加密钥。

最后,如果您没有Platform.sh帐户,可以向开发人员寻求邀请,使用这些说明

答案2

您必须ssh-gen-key在本地系统上运行,然后将它创建的 pulich 密钥复制到~/.ssh/authorized_keys远程系统上的文件中。公钥以 结尾*.pub;不要复制没有该文件扩展名的私钥。

有一个程序,ssh-copy-id只要你能用密码登录,它就会进行复制。否则,你就得用其他方法进行复制。

相关内容