ssh localhost에 오류가 발생했습니다: 권한이 거부되었습니다(공개 키).

ssh localhost에 오류가 발생했습니다: 권한이 거부되었습니다(공개 키).

이 문제를 해결해야 합니다. -v옵션을 사용한 출력은 다음과 같습니다.

emarguli@DESKTOP-6C25GHF:/$ ssh -v localhost
OpenSSH_7.2p2 Ubuntu-4ubuntu2.4, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to localhost [127.0.0.1] port 22.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /home/emarguli/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/emarguli/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/emarguli/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/emarguli/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/emarguli/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/emarguli/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/emarguli/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/emarguli/.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.4
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.2p2 Ubuntu-4ubuntu2.4
debug1: match: OpenSSH_7.2p2 Ubuntu-4ubuntu2.4 pat OpenSSH* compat 0x04000000
debug1: Authenticating to localhost:22 as 'emarguli'
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:lUNGPHQv3Mh7sr4p6aIz/fW5r8uTRrJrBfHo9nk1gRk
debug1: Host 'localhost' is known and matches the ECDSA host key.
debug1: Found key in /home/emarguli/.ssh/known_hosts:1
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/emarguli/.ssh/id_rsa
debug1: Trying private key: /home/emarguli/.ssh/id_dsa
debug1: Trying private key: /home/emarguli/.ssh/id_ecdsa
debug1: Trying private key: /home/emarguli/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).

답변1

단서는 승수입니다 key_load_public: No such file or directory. 키를 생성하지 않고 서버가 키를 기다리고 있습니다.

ssh-keygen키를 생성하고 다시 시도하세요 . 전화만 하면 ssh-keygen사용자 emarguli가 계속 진행할 수 있도록 RSA 키를 생성해 줍니다.

더 많은 옵션을 보려면 다음을 읽어보세요.매뉴얼 페이지.

키를 생성한 후 업로드해야 합니다.사람들클라이언트에 있는 개인 키를 신뢰하도록 원격 서버에 키를 보냅니다. 일반적으로 이는 다음 명령을 사용하여 수행할 수 있습니다 ssh-copy-id.

$ ssh-copy-id <user>@<server>

그러나 로컬 시스템에 연결할 때 RSA 공개 키를 ~/.ssh/id_rsa.pub인증된 키 파일에 추가하기만 하면 됩니다 ~/.ssh/authorized_keys.

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

마지막으로 마지막 파일에 대한 권한이 올바른지 확인하세요. 해당 파일은 소유자만 쓸 수 있습니다.

chown 0640 ~/.ssh/authorized_keys

관련 정보