Cygwin 1.7.11의 키 파일 key.pem
에 대한 권한을 변경하려고합니다 . 권한 플래그가 있습니다.-rw-rw----
chmod -c 600 key.pem
보고서 :
‘key.pem’모드가 0660 (rw-rw —-)에서 0600 (rw ——-)으로 변경되었습니다.
하나:
ls -l key.pem
여전히보고
key.pem의 권한 플래그는 여전히 다음과 같습니다. -rw-rw —-
내가 묻는 이유는 ssh가 불평하고 있기 때문입니다.
‘key.pem’에 대한 권한 0660이 너무 열려 있습니다.
Amazon EC2 인스턴스로 ssh하려고 할 때
이것이 Cygwin & Windows 8 NTFS의 문제입니까, 아니면 뭔가 빠졌습니까?
답변
Win8CP에서 Cygwin을 사용하고 있으며 동일한 문제가 있습니다. 분명히 Cygwin 버그이지만 해결 방법이 있습니다. 실행 해보십시오.
chgrp -R Users ~/.ssh
더 긴 설명은 어떤 이유로 Cygwin /etc/passwd
과 /etc/group
세대가 사용자의 기본 / 기본 그룹을로 설정한다는 것 None
입니다. 그리고 당신의 권한을 변경할 수 없습니다 None
소위, chmod
그룹은 효과가 없습니다.
passwd
/ group
파일을 직접 복구하려고 시도하지 않았지만 chgrp -R Users ~/.ssh
(또는 그룹 이름으로 Windows 8 시험판을 사용하는 경우 HomeUsers
) 수행했습니다. 그 후에는 할 수 chmod 0600
있으며 예상대로 작동합니다.
chgrp
받는 Users
그룹은 찾을 유사한 다른 어느 경우에 수행 할 수 있습니다. Cygwin이 Users
그룹의 사용자 를 기본 그룹 대신 보조 그룹 으로 지정하기 때문에 예상대로 작동 합니다. 이는 올바른 동작입니다.
답변
Cygwin 1.7.34 (2015-02-04)부터는 그룹을 Users
더 이상 변경 하지 않는 방법이 작동하지 않습니다. 대신 Cygwin의 setfacl
유틸리티 를 사용해야 합니다.
-
파일 모드를 설정하려면
644 (rw-r--r--)
다음과 같이하십시오.setfacl -s u::rw-,g::r--,o:r-- foo.bar
-
또는 더 긴 형식을 사용하십시오.
setfacl -s user::rw-,group::r--,other::r-- foo.bar
-
또는
getfacl
파일foo
에서bar
다음을 사용하여 해당 모드를 복사 하십시오 .getfacl foo | setfacl -f - bar
완전한 매뉴얼은 Cygwin 사용자 안내서 의 “setfacl”섹션에 있습니다. Cygwin이 아직 chmod
유틸리티를 변경하지 않은 이유가 궁금 합니다.
답변
다음은 Luke Lee의 제안을 사용하지만 chmod와 같은 8 진 인수를 지원하는 스크립트입니다. 확장 할 수있는 프레임 워크를 제공합니다. 현재는 key.pem 및 / 또는 ~ / .ssh 디렉토리 및 파일에 대한 권한을 수정하는 데 필요한 8 진 인수 만 지원합니다.
#!/bin/bash
# convert chmod octal permission args to equivalent setfacl args
ARGS=() ; FILES=()
while [ $# -gt 0 ]; do
A=$1 ; shift
case "$A" in
600|0600) ARGS+=("u::rw-,g::---,o::---") ;;
640|0640) ARGS+=("u::rw-,g::r--,o::---") ;;
644|0644) ARGS+=("u::rw-,g::r--,o::r--") ;;
700|0700) ARGS+=("u::rwx,g::---,o::---") ;;
*) if [ -e "$A" ]; then FILES+=( "$A" ) ; else
echo "unrecognized arg [$A]" 1>&2
exit 1
fi
;;
esac
done
for F in "${FILES[@]}" ; do
setfacl -s "${ARGS[@]}" "$F"
done
.ssh 디렉토리와 파일을 수정하기 위해 다음과 같이 사용했습니다.
chmodfacl 700 ~/.ssh
chmodfacl 600 ~/.ssh/*
chmodfacl 640 ~/.ssh/*.pub
답변
chgrp -R Users ~/.ssh
chmod 0600 ~/.ssh/config
chmod 0700 ~/.ssh
답변
git bash가 설치되어 있다면 git bash 와 동일한 명령 ( chmod -c 600 key.pem
)을 실행하고 Cygwin을 피하십시오 .
답변
cygwin 터미널에서 ssh-keygen 명령을 실행하면이 문제를 해결할 수 있습니다 (일반 Windows 명령 프롬프트 아님). 내 Windows8 컴퓨터 에서이 작업을 수행했습니다.
답변
Cygwin 설치 프로그램을 실행하고 업데이트하십시오. 버그를 수정해야합니다.