"UNPROTECTED PRIVATE KEY FILE"의 의미
SSH가 개인 키 사용을 거부하는 이유는 그 파일을 머신의 다른 사용자가 읽을 수 있기 때문입니다. 해결책은 명령 한 줄 —— 파일 권한을 600(소유자만 읽기/쓰기 가능)으로 좁히는 것입니다:
chmod 600 ~/.ssh/id_ed25519 Linux나 macOS에서는 이것으로 끝입니다. 이 가이드의 나머지에서는 SSH가 왜 이렇게 하는지, Windows에서의 해결 방법, 그리고 제대로 만들어진 모바일 클라이언트에서 이 문제 전체가 사라지는 이유를 설명합니다.
전체 오류 메시지
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/home/you/.ssh/id_ed25519' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored. 핵심 줄은 "This private key will be ignored."입니다 —— SSH는 단지 경고만 한 것이 아니라 그 키를 제시하는 것조차 거부했습니다. 그래서 연결은 이어서 Permission denied (publickey)로 실패하게 됩니다.
SSH가 이토록 엄격한 이유
개인 키는 "당신이 당신임"을 증명하는 유일한 비밀입니다. 머신의 다른 사용자가 그것을 읽을 수 있다면(0644 = 소유자 쓰기 가능, 모두 읽기 가능), 그들은 그것을 복사해 그 키를 신뢰하는 모든 서버에서 당신을 사칭할 수 있습니다. SSH는 누구나 읽을 수 있는 개인 키를 기본적으로 "유출됨"으로 간주하고 건드리지 않습니다. 이것은 기능이지 성가심이 아닙니다.
Linux / macOS에서의 해결
chmod 600 ~/.ssh/id_ed25519 # 私钥:仅属主可读写
chmod 644 ~/.ssh/id_ed25519.pub # 公钥可保持可读
chmod 700 ~/.ssh # 目录:仅属主
chown $USER ~/.ssh/id_ed25519 # 确认归你所有 가장 흔한 원인은 다른 머신, USB 메모리, 클라우드 드라이브에서 키를 복사한 것입니다 —— 복사본은 기본 644 권한으로 떨어집니다. 600으로 다시 좁히면 매번 해결됩니다. (같은 파일이지만 연결의 반대쪽인 경우:서버 측의 authorized_keys 권한이 너무 개방되어 있다면 대신 publickey 가이드를 참조하세요.)
Windows에서의 해결
Windows는 chmod를 사용하지 않습니다. Windows용 OpenSSH는 대신 NTFS ACL을 확인합니다. 깔끔한 해결책은 상속된 권한을 제거하고 자신의 사용자에게만 부여하는 것입니다:
icacls "C:\Users\You\.ssh\id_ed25519" /inheritance:r
icacls "C:\Users\You\.ssh\id_ed25519" /grant:r "%USERNAME%:R" 또는 파일의 속성 → 보안 → 고급에서:상속을 비활성화하고 자신의 계정을 제외한 모든 항목을 삭제하세요.
좋은 모바일 클라이언트에서는 이것이 결코 일어나지 않는 이유
이 부류의 오류는 전부 파일 시스템 권한 문제입니다 —— 그것이 존재하는 유일한 이유는 키가 OS 사용자가 읽을 수 있는 일반 파일에 놓여 있기 때문입니다. 잘 만들어진 모바일 SSH 클라이언트는 키를 흩어진 파일로 저장하지 않습니다:키는 기기의 보안 저장소(iOS/Android Keychain)에 존재하며 앱만 접근할 수 있습니다. 잘못 설정할 chmod가 없으므로 "UNPROTECTED PRIVATE KEY FILE"은 그냥 발생할 수 없습니다.
TermAI에서는 앱이 당신을 위해 Ed25519 키를 생성하고 안전하게 저장합니다. 당신은 그것으로 연결하고, 서버에서 필요하면 원탭 배포로 공개 키 절반을 authorized_keys에 기록합니다. 개인 키는 당신이 권한을 단속해야 하는 파일이 되는 일이 결코 없습니다.
자주 묻는 질문
"UNPROTECTED PRIVATE KEY FILE"은 어떻게 고치나요?
개인 키에 chmod 600(그리고 chmod 700 ~/.ssh)을 실행하세요. Windows에서는 상속된 ACL을 제거하고 자신의 사용자에게만 부여하세요. 그러면 SSH가 키를 무시하지 않게 됩니다.
SSH 개인 키는 어떤 권한이어야 하나요?600(소유자만 읽기/쓰기). .ssh 디렉터리는 700이어야 하고, 공개 .pub 파일은 644여도 됩니다.
왜 키를 복사한 후에 시작됐나요?
USB 드라이브, 클라우드 스토리지, 다른 머신에서의 복사본은 기본 644(누구나 읽기 가능) 권한으로 떨어집니다. 600으로 다시 좁히세요.
무시하면 위험한가요?
네 —— 누구나 읽을 수 있는 개인 키는 머신의 다른 어떤 사용자에게도 도난당할 수 있습니다. 권한을 고치세요. 검사를 우회하지 마세요.
핵심 요약
- 의미: 개인 키 파일을 다른 사람이 읽을 수 있어 SSH가 사용을 거부(이후 publickey로 실패)
- 해결(Linux/macOS):
chmod 600 ~/.ssh/id_ed25519,chmod 700 ~/.ssh - 해결(Windows): 상속된 ACL 제거, 자신의 사용자에게만 부여(
icacls … /inheritance:r) - 올바른 권한: 개인 키 600,
.ssh디렉터리 700, 공개 키 644 - 모바일에서는: 키가 파일이 아닌 기기의 Keychain에 존재 —— 이 오류가 발생할 수 없음
Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.