오류 권한 거부(Publickey)를 수정하는 방법

게시 됨: 2024-01-10
목차
  • 중요한 이유
  • 보안 컴퓨터 연결의 기본 사항
  • 자물쇠의 열쇠: 공개 키
  • 이 오류는 왜 발생합니까?
  • 문제를 해결하는 방법
  • 여전히 작동하지 않는 경우 추가 팁
  • 원활한 실행 유지
  • 자주 묻는 질문
  • 기타 리소스
  • 마무리

컴퓨터를 사용하는 동안 "오류: 권한이 거부되었습니다(Publickey)"라는 메시지를 본 적이 있습니까? 이는 컴퓨터가 서로 안전하게 통신하는 방식인 SSH 연결 중에 일반적으로 나타나는 일반적인 오류입니다.

자물쇠에 맞지 않는 열쇠를 사용하려고 한다고 생각해보세요. 이 오류가 표시되면 보안 설정의 일부가 일치하지 않아 컴퓨터가 다른 컴퓨터와 보안 링크를 설정하는 데 문제가 있다는 의미입니다.

오류 수정 방법: 권한 거부(Publickey)

중요한 이유

SSH를 사용한 것과 같은 보안 연결은 시끄러운 방에서 사적인 대화를 나누는 것과 같습니다. 특히 비밀이나 개인 정보를 공유하는 경우 모든 사람이 엿듣는 것을 원하지 않을 것입니다. 그렇죠? 그렇기 때문에 이 오류를 수정하는 것이 매우 중요합니다.

컴퓨터 대화를 비공개로 안전하게 유지하여 비밀번호와 같은 민감한 정보를 기밀로 유지합니다.

보안 컴퓨터 연결의 기본 사항

SSH가 무엇인지 자세히 살펴보겠습니다.

SSH는 Secure Shell의 약자이며 컴퓨터가 인터넷을 통해 매우 안전한 방식으로 서로 통신할 수 있는 특별한 방법입니다. 두 대의 컴퓨터를 연결하는 특별한 개인 터널과 같은 SSH를 상상해 보십시오.

이 두 컴퓨터만이 이 터널을 통해 서로에게 메시지를 보낼 수 있어 도청자로부터 대화를 안전하게 보호할 수 있습니다.

자물쇠의 열쇠: 공개 키

이 터널을 안전하게 만들기 위해 SSH는 '공개 키 인증'이라는 것을 사용합니다. 이는 특별한 비밀번호를 갖는 것과 같지만 키 형태입니다. 귀하의 컴퓨터에는 다른 컴퓨터와 공유하는 고유 키(공개 키라고 함)가 있습니다.

비밀 악수처럼 생각해보세요. 핸드셰이크가 일치하지 않으면 연결이 이루어지지 않으며, 이때 “Error: Permission Denied (Publickey)” 메시지가 표시됩니다.

이 오류는 왜 발생합니까?

그렇다면 왜 이 오류가 표시됩니까? 몇 가지 일반적인 이유는 다음과 같습니다.

  1. 주요 문제: 가끔 특수 키 설정에 문제가 있어서 오류가 발생하는 경우가 있습니다. 컴퓨터의 키가 대화하려는 컴퓨터의 키와 일치하지 않을 수도 있습니다. 이는 마치 둥근 구멍에 네모난 말뚝을 끼워 넣으려는 것과 같습니다. 작동하지 않습니다.
  2. 잘못된 설정: 다른 경우에는 컴퓨터의 설정이나 권한이 잘못 설정되었을 수 있습니다. 이로 인해 올바른 열쇠가 있지만 자물쇠를 열 수 없는 등 컴퓨터가 열쇠를 제대로 사용하지 못하게 될 수 있습니다.

문제를 해결하는 방법

이제 이 오류가 발생하는 이유를 조금 이해했으므로 오류를 해결하는 방법에 대해 이야기해 보겠습니다. 다음은 수행할 수 있는 몇 가지 단계입니다.

SSH 키 권한 확인:

개인 키에 대한 올바른 권한을 설정하십시오.

 chmod 600 ~/.ssh/id_rsa chmod 600 ~/.ssh/autorized_keys

공개 키가 서버의 ~/.ssh/authorized_keys 에 있는지 확인하세요. 그렇지 않은 경우 다음을 사용하여 추가하십시오.

고양이 ~/.ssh/id_rsa.pub | ssh user@hostname 'cat >> ~/.ssh/authorized_keys'.

SSH 연결 디버깅

ssh -vvv user@hostname을 실행하여 상세 모드를 활성화하고 자세한 연결 진단을 제공합니다.

특히 PasswordAuthenticationPubkeyAuthentication 의 경우 서버에서 올바른 구성을 확인하세요.

고양이 etc/ssh/sshd_config

추가 솔루션:

SSH 연결에 올바른 사용자 이름을 사용하고 있는지 다시 확인하세요.

연결을 새로 고치려면 SSH 서비스를 다시 시작하세요.

 sudo systemctl restart sshd

SSH 구성 파일에서 SSH 연결 포트를 확인합니다. 기본값은 일반적으로 22이지만 변경되었을 수 있습니다.

SSH 포트를 확인하세요

오류 세부정보는 /var/log/auth.log 또는 /var/log/secure와 같은 서버 로그를 확인하세요.

여전히 작동하지 않는 경우 추가 팁

이러한 단계를 시도한 후에도 여전히 오류가 표시되는 경우 다음과 같은 몇 가지 추가 작업을 시도해 보세요.

  1. 대화 모드: SSH에서 자세한 정보 표시 모드를 켭니다. 이는 컴퓨터에 무엇이 잘못되었는지에 대한 더 많은 단서를 제공하도록 요청하는 것과 같습니다. ssh -vvv [email protected] 와 같이 SSH 명령에 -vvv 추가하면 됩니다. 연결을 시도할 때 무슨 일이 일어나고 있는지에 대한 더 많은 세부 정보를 제공합니다.
  2. 에이전트 문제: 때때로 키를 보관하는 도구인 SSH 에이전트에 문제가 있을 수 있습니다. 에이전트가 제대로 작동하지 않으면 키가 올바르게 표시되지 않습니다. SSH 에이전트를 다시 시작하면 도움이 되는 경우가 있습니다.

원활한 실행 유지

앞으로 이 오류가 발생하지 않도록 모든 것이 제대로 작동하도록 하는 몇 가지 팁은 다음과 같습니다.

  1. 키 관리: 집 열쇠처럼 SSH 키를 관리하세요. 안전하게 보관하고 다른 사람과 공유하지 마세요. 여전히 정상적으로 작동하는지 정기적으로 확인하세요.
  2. 정기 점검: 자동차나 집에 문제가 있는지 정기적으로 점검하는 것처럼 SSH 설정도 동일하게 수행하세요. 설정이 예기치 않게 변경되지 않았는지, 키가 최신 상태인지 확인하세요.

자주 묻는 질문

SSH에서 공개 키 인증을 어떻게 설정합니까?

SSH에서 공개 키 인증을 설정하려면 먼저 ssh-keygen 과 같은 명령을 사용하여 로컬 시스템에서 SSH 키 쌍을 생성하세요. 그러면 개인 키( id_rsa )와 공개 키( id_rsa.pub )가 생성됩니다. 그런 다음 ssh-copy-id user@server_ip 사용하여 공개 키를 서버의 ~/.ssh/authorized_keys 파일에 복사합니다. 보안을 위해 authorized_keys 파일에 올바른 권한(일반적으로 600)이 있는지 확인하십시오. 이 설정을 통해 SSH는 비밀번호 대신 키 기반 인증을 사용할 수 있습니다.

'SSH 권한 거부(공개 키)' 오류의 일반적인 원인은 무엇입니까?

  • 이 오류의 일반적인 원인은 다음과 같습니다.
  • SSH 키 파일에 대한 권한이 잘못되었습니다. 개인 키는 사용자만 읽을 수 있어야 합니다(600).
  • SSH 구성 파일( sshd_config 또는 ssh_config )의 구성이 잘못되었습니다.
  • 현재 인증 프로토콜을 지원하지 않을 수 있는 오래된 SSH 클라이언트 또는 서버 소프트웨어.
  • SSH 포트 또는 연결을 차단하는 방화벽 또는 보안 소프트웨어.
  • authorized_keys 파일에서 공개 키를 잘못 설정했거나 SSH 연결에 잘못된 사용자 이름을 사용했습니다.

내 SSH 키가 서버에 올바르게 추가되었는지 어떻게 확인할 수 있나요?

확인하려면 서버에 로그인하여 ~/.ssh/authorized_keys 파일을 확인하세요. 공개 키가 여기에 나열되어야 합니다. 서버에 SSH를 시도하여 연결을 테스트할 수도 있습니다. 비밀번호를 묻지 않으면 키가 올바르게 추가된 것입니다.

SSH 키 파일에 대한 권한을 제한하는 것이 왜 중요한가요?

SSH 키 파일에 대한 권한을 제한하는 것은 보안을 위해 중요합니다. 다른 사람이 귀하의 개인 키를 읽을 수 있다면 잠재적으로 귀하의 서버에 액세스할 수도 있습니다. 개인 키를 안전하게 유지하면 본인만이 이를 사용하여 인증할 수 있습니다.

서버의 SSH 구성을 변경하면 '권한 거부' 오류가 발생할 수 있나요?

예, 서버의 SSH 구성 파일( etc/ssh/sshd_config )을 변경하면 이러한 오류가 발생할 수 있습니다. 예를 들어 PubkeyAuthentication no 로 설정된 경우 서버는 공개 키 인증을 허용하지 않아 권한 거부 오류가 발생합니다.

SSH 클라이언트가 오래된 경우 어떻게 해야 합니까?

SSH 클라이언트가 오래된 경우 최신 인증 방법을 지원하지 않거나 패치가 적용되지 않은 보안 취약점이 있을 수 있습니다. SSH 클라이언트를 운영 체제에 사용 가능한 최신 버전으로 업데이트하는 것이 중요합니다.

방화벽은 SSH 연결에 어떤 영향을 미치나요?

방화벽이 SSH 포트에 대한 액세스를 제한하도록 구성된 경우 SSH 연결을 차단할 수 있습니다(기본값은 22). 연결 문제를 방지하려면 방화벽이 SSH에 사용되는 포트에서 트래픽을 허용하는지 확인하세요.

기타 리소스

Linux 2024에서 Sendmail을 설치하는 방법(단계별)

DevOps를 위한 기본 Linux 명령(핸드북)

마무리

이 문서에서는 "오류: 권한 거부(Publickey)"의 원인과 해결 방법을 살펴보았습니다. 기억하세요. 이 오류는 자물쇠에 맞지 않는 키와 같습니다. 이는 일반적으로 SSH 키가 설정되거나 사용되는 방식에 문제가 있음을 의미합니다. 우리가 설명한 단계를 따르면 문제를 해결하고 다른 컴퓨터와 안전하게 대화할 수 있습니다.