SSH 키 : " 'id_rsa.pub'에 대한 권한 0644가 너무 열려 있습니다." 맥에서


261

내 Mac에서 ssh 키 페어를 생성하고 공개 키를 내 우분투 서버 (사실 내 맥의 가상 컴퓨터)에 추가하지만 우분투 서버에 로그인하려고하면 다음과 같이 말합니다.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/tudouya/.ssh/vm/vm_id_rsa.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Users/tudouya/.ssh/vm/vm_id_rsa.pub
Permission denied (publickey,password).

이 문제를 해결하고 키 파일 모드를 변경하고 폴더 모드를 변경하는 여러 가지 방법을 시도했지만 stackoverflow에 대한 답변으로 작동하지 않습니다.
키 파일 권한 :

vm dir:
drwxr-xr-x   4 tudouya  staff    136  4 29 10:37 vm

key file:
-rw-------  1 tudouya  staff  1679  4 29 10:30 vm_id_rsa
-rw-r--r--  1 tudouya  staff   391  4 29 10:30 vm_id_rsa.pub

나에게 몇 가지 아이디어를 알려주십시오 ... =========================================

I ssh_config에 호스트 정보를 작성하십시오.

Host ubuntuvm
    Hostname 10.211.55.17
    PreferredAuthentications publickey
    IdentityFile /Users/tudouya/.ssh/vm/vm_id_rsa.pub

"ssh -v ubuntuvm"명령을 실행하면 다음이 표시됩니다.

ssh -v ubuntuvm
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 103: Applying options for *
debug1: /etc/ssh_config line 175: Applying options for ubuntuvm
debug1: Connecting to 10.211.55.17 [10.211.55.17] port 22.
debug1: Connection established.
debug1: identity file /Users/tudouya/.ssh/vm/vm_id_rsa.pub type 1
debug1: identity file /Users/tudouya/.ssh/vm/vm_id_rsa.pub-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1p1 Ubuntu-8
debug1: match: OpenSSH_6.6.1p1 Ubuntu-8 pat OpenSSH*
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5-etm@openssh.com none
debug1: kex: client->server aes128-ctr hmac-md5-etm@openssh.com none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA 55:6d:4f:0f:23:51:ac:8e:70:01:ec:0e:62:9e:1c:10
debug1: Host '10.211.55.17' is known and matches the RSA host key.
debug1: Found key in /Users/tudouya/.ssh/known_hosts:54
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/tudouya/.ssh/vm/vm_id_rsa.pub
debug1: Server accepts key: pkalg ssh-rsa blen 279
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/tudouya/.ssh/vm/vm_id_rsa.pub' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /Users/tudouya/.ssh/vm/vm_id_rsa.pub
debug1: No more authentication methods to try.
Permission denied (publickey,password).

1
실행중인 특정 ssh 명령을 포함하도록 질문을 편집 할 수 있습니까? 해당 키 파일이 ssh 구성 파일에 지정된 경우 구성 파일의 관련 행도 포함하십시오.
Kenster

나에게 "나쁜 권한"이었다
insign

-i id_rsa.pub연결에 ssh 명령을 추가 할 때이 문제에 직면 합니다. 암호를 요구하기 위해 ssh command force에 공개 키를 사용하도록 강요 한 것 같습니다 (최소한 경우에는 암호 문구가 비어있을 때도)
Diego Andrés Díaz Espinoza

답변:


148
debug1: identity file /Users/tudouya/.ssh/vm/vm_id_rsa.pub type 1

잘못된 키 파일을 사용하려는 것 같습니다. 확장자가 ".pub"인 파일 은 공개 키 파일입니다. ".pub"확장자가없는 해당 파일은 개인 키 파일입니다. ssh 클라이언트를 실행하여 원격 서버에 연결하는 경우 개인 키 파일을 ssh 클라이언트에 제공해야합니다.

당신은 아마 당신의 라인이 .ssh/config파일을 (또는 /etc/ssh_config같이 보이는) :

IdentityFile .../.ssh/vm/vm_id_rsa.pub

파일 이름에서 ".pub"확장자를 제거해야합니다.

IdentityFile .../.ssh/vm/vm_id_rsa

SQLPro 에서이 문제가 발생 .pub하여 개인 파일 대신 공개 ( ) 파일을 잘못 선택했습니다 .
Henry

1
내가 한 때이 오류를 가지고 ssh -i id_ed25519.pub일을 반면 ssh -i id_ed25519작품
보리스

2
감사합니다.
Abner

훌륭한! 감사합니다!
Alliswell

574

나는 당신이 할 것을 제안합니다 :

chmod 400 ~ / .ssh / id_rsa

나를 위해 잘 작동합니다.


33
“Permissions 0644 for 'id_rsa.pub' are too open."따라서 열쇠는 무시되었습니다. 다른 PC에서 키 파일을 복사했기 때문일 수 있습니다. 그러나 권한 수정으로 문제가 해결되었습니다. 고마워!
parasrish

2
@ xoxn--1'w3k4n 왜 이렇게 나쁜가? 사람들이 이러한 민감한 파일에 대한 읽기 / 쓰기 액세스 권한을 복사하거나 잘못 관리 한 경우 수정해야합니다.
제라드

5
이것은 덕트 테이프가 아닙니다. ID를 복사 한 경우 이치에 맞습니다.
ALisboa

오래된 컴퓨터에서 ssh 키를 복사 할 때 해결책으로 나를 위해 일했습니다!
Nick

1
WSL에서도 작동
h-rai

59

로그인 한 사용자가 키를 읽을 수 있어야합니다.

이 시도:

chmod 400 ~/.ssh/Key file
chmod 400 ~/.ssh/vm_id_rsa.pub

공개 키 400 또는 600으로 내가하고 잘못된 형식 얻을ssh-add ~/.ssh/id_rsa.pub
rhand


23

아래 명령을 실행하면 나에게 효과적입니다.

sudo chmod 600 /path/to/my/key.pem

20

제 경우에는 .pem 파일이었습니다. 그 결과도 좋습니다. 파일의 권한이 변경되어 작동했습니다.

chmod 400 ~/.ssh/dev-shared.pem

위에 도움을 주신 모든 분들께 감사드립니다.


13

키가 ~ / .ssh 디렉토리에 있으면

chmod 400 ~ / .ssh / id_rsa

키가 다른 디렉토리에있는 경우

chmod 400 directory_path / id_rsa

이것은 나를 위해 일했습니다.


2
이것이 다른 답변을 어떻게 개선합니까?
Nico Haase

2
그것은 보호되어야하는 펍 키가 아니며, 개인 키입니다
Picarus

개인 키는 보호되어야합니다.
bashan

그것은 나를 위해 작동합니다. 나는 이것이 chmod 400 ~/.ssh/id_rsa당신이 @ Anirban을 의미 한다고 생각 합니다. 위에서 언급 한 바와 같이 : 확장자가 ".pub"인 파일은 공개 키 파일입니다. ".pub"확장자가없는 해당 파일은 개인 키 파일입니다. 우리는 사적인 것을 보호해야합니다.
naveenKumar

답변을 수정했습니다. 개인 키 여야합니다.
Anirban

12

롯은 비슷한 대답이지만 설명이 없습니다 ...

개인 키 파일 권한이 너무 열려 오류가 발생합니다. 보안 위험이 있습니다.

개인 키 파일에 대한 권한을 최소로 변경하십시오 (소유자 만 읽음)

  1. 소유자 변경 chown <unix-name> <private-key-file>
  2. 최소 권한 설정 (파일 소유자에게만 읽기) chmod 400 <private-key-file>

7

저에 관해서는, 기본 모드 id_rsa600하는 수단, readablewritable.

이 파일을 git repo로 푸시하고 다른 PC에서 가져 오면 때로는 개인 키 파일의 모드가됩니다 -rw-r--r--.

개인 키 파일을 지정한 후 ssh로 repo를 가져 오면 실패하고 경고 메시지가 표시됩니다. 다음은 내 대본입니다.

ssh-agent bash -c "ssh-add $PATH_OF_RSA/id_rsa; \
git pull git@gitee.com:someone/somerepo.git "

모드를로 변경 하여이 문제를 해결합니다 600.

chmod 600 $PATH_TO_RSA/id_rsa

6

permision 400을 사용하면 키를 개인용으로 만들 수 있으며 알 수없는 사람이 액세스 할 수 없습니다. 키를 보호되는 키로 만듭니다.

chmod 400 /Users/tudouya/.ssh/vm/vm_id_rsa.pub


2

chmod 400 /etc/ssh/* 나를 위해 작동합니다.


3
디렉토리의 모든 키에 영향을 미친다는 것을 알고있는 한이 작업을 수행 할 수 있습니다.
J2N

2

.ssh / config 파일을 사용하는 경우

chmod 0400 .ssh/config

그때:

chmod 0400 .ssh/<<KEYFILE_PATH>>

2

chmod 400 id_rsa.pub를 제안한 사람들은 전혀 소리가 나지 않았습니다. op 가 ssh 개인 키 대신 pub key 사용했을 가능성이 있습니다.

따라서 ssh -i /Users/tudouya/.ssh/vm/vm_id_rsa (the private key) user@host수정하는 것만 큼 ​​간단 할 수 있습니다 .

--- 업데이트 ---

SSH 키를 설정하는 방법은 https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys--2 문서를 확인하십시오.


내 경우에는이 문제를 검색하고 대답을 얻었을 때 chmod 400이 내 문제를 해결하는 데 필요한 것일 수 있습니다. 도와 주신 모든 분들께 감사드립니다!
J2N

1

당신의 pem의 아래로 실행

sudo chmod 600 /path/to/my/key.pem 

-8

을 제거하고 .pub file작동했습니다.


1
.pub 파일을 제거 할 필요는 없습니다. 또한 나중에 사용할 수 있도록 컴퓨터에 공개 키에 대한 기록이 없다는 것을 의미합니다.
Henry

1
OpenSSH가있는 경우을 사용하여 개인 키에서 누락 된 공개 키 파일을 재생성 할 수 있습니다 ssh-keygen -i -f /path/to/private.key > /desired/path/to/public.key. 따라서 실제로 손실되지는 않습니다. :)
dannysauer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.