ssh-keygen을 사용하여 ssh 키 쌍을 생성하고 서버에 ssh-copy-id를 사용하여 Authorized_keys에 공개 키가 추가되었는지 확인했지만 ssh -i ~/.ssh/를 사용하여 서버에 연결하려고 하면 MY_KEY user@ 아직도 비밀번호를 묻고 있습니다. 서버에 루트 액세스 권한이 없지만 내 .ssh 디렉토리에는 "authorized_keys" 및 "known_hosts" 파일만 있고 둘 다 공개 키 "MY_KEY"가 있습니다. /User, /.ssh 및 /.ssh의 두 파일에 대한 모든 권한을 확인했지만 sshd_config에 액세스할 수 없습니다.
연결하려고 하면 이렇게 표시됩니다.
ssh -v -i ~/.ssh/MY_KEY user@serverIP
debug1: Reading configuration data /Users/user/.ssh/config
debug1: /Users/user/.ssh/config line 18: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 48: Applying options for *
debug1: Connecting to serverIP [serverIP] port 22.
debug1: Connection established.
debug1: identity file /Users/user/.ssh/MY_KEY type 0
debug1: identity file /Users/user/.ssh/MY_KEY-cert type -1
debug1: identity file /Users/user/.ssh/gitlabkey type 3
debug1: identity file /Users/user/.ssh/gitlabkey-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.9
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.4
debug1: match: OpenSSH_7.4 pat OpenSSH_7.0*,OpenSSH_7.1*,OpenSSH_7.2*,OpenSSH_7.3*,OpenSSH_7.4*,OpenSSH_7.5*,OpenSSH_7.6*,OpenSSH_7.7* compat 0x04000002
debug1: Authenticating to serverIP:22 as 'user'
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:oF1yjVJjhgf9N7u84hk8QqZrY
debug1: Host 'serverIP' is known and matches the ECDSA host key.
debug1: Found key in /Users/user/.ssh/known_hosts:17
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: rekey after 134217728 blocks
debug1: Will attempt key: /Users/user/.ssh/MY_KEY RSA SHA256:W3JxHToIyelBpl4 explicit
debug1: Will attempt key: /Users/user/.ssh/gitlabkey ED25519 SHA256:KAd+YwkK6dWptbtLvWg explicit
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,password
debug1: Next authentication method: publickey
debug1: Offering public key: /Users/user/.ssh/MY_KEY RSA SHA256:W3JxHToIyelB6Upl4 explicit
debug1: Authentications that can continue: publickey,password
debug1: Offering public key: /Users/user/.ssh/gitlabkey ED25519 SHA256:KAd+YwkK6dWtvWg explicit
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: password
user@serverIP's password:
솔직히 다른 무엇을 시도해야할지 모르겠습니다. 올바른 키(MY_KEY)를 시도하는 이유를 이해할 수 없지만 분명히 실패합니다.
답변1
같은 문제를 겪고 계신 분들을 위해... 오랜 시간이 지나서야 해결할 수 있었습니다.
시도하는 데 지쳐서 Authorized_keys와 Known_hosts를 삭제했고 내가 가진 것은 빈 .ssh 디렉토리뿐이었습니다. 그 순간 나는 서버와의 연결을 끊고 모든 것이 망가졌다고 생각했지만 Mac을 사용하고 있기 때문에https://coderwall.com/p/8ag5aq/ssh-broken-pipe-fix-mac-os-x다시 연결할 수 있습니다.
Mac에서 ssh-copy-id 명령을 다시 실행하면 서버에 "known_hosts" 대신 "authorized_keys" 파일이 자동으로 생성됩니다.
그게 다입니다. 그런 다음 ssh -i /path/to/MYKEY user@serverIP를 실행했는데 비밀번호를 묻는 메시지가 표시되지 않고 매력처럼 작동했습니다.