SSH 키 파일 권한 검사 무시


29

개인 키 파일과 기타 중요한 데이터가 포함 된 암호화 된 FAT 볼륨 (호환성을 위해)이 있습니다.

개인 키를 사용하여 SSH를 통해 서버에 연결하고 싶지만 FAT는 파일 권한을 지원하지 않으므로 권한이 너무 열려 있다는 내 키를 무시합니다.

따라서 현재 0600 권한으로 하드 드라이브의 다른 곳에 복사하여 사용하고 안전하게 지우려고하지만 고통 스럽습니다.

이 ssh / scp 명령 행에서 권한 점검을 우회하는 방법이 있습니까?

편집 : 정밀도 : OS X의 TrueCrypt 볼륨이었습니다.

해결책 : 아래의 대답은 Mac OS X의 TrueCrypt 볼륨에있는 SSH 키 파일을 사용하여 내 문제를 해결했지만 해결 방법입니다. "키 파일 권한 검사 우회"방법이없는 것 같습니다.

답변:


18

AFAIK에는 ssh 또는 ssh-add를 사용하여 키 파일 권한 검사를 우회 할 수있는 방법이 없습니다 (명명 된 파이프 등으로 속일 수는 없습니다). 게다가, 당신은 실제로 ssh를 속이고 싶지 않고 키 파일을 사용할 수 있기를 원합니다.

실제로 TrueCrypt 볼륨은 데이터를 비공개로 유지해야하므로 볼륨을 세계가 읽을 수있는 (TrueCrypt의 기본 동작) 볼륨으로 마운트하는 것이 실제로 최적이 아닙니다. FAT 형식의 볼륨을 사용하는 경우 Dan Carley가 제안한대로 마운트 옵션을 조정해야합니다.

OS X 용 TrueCrypt가 마운트 옵션을 아직 제대로 지원하지는 않지만 (명령 줄 인터페이스를 사용하여 TC를 시작하고 매뉴얼 페이지의 마운트 옵션을 이미 시도했지만 이미 시도 했음에도 불구하고) OS X는 볼륨 이름을 기반으로 마운트 옵션 기본값을 지원합니다 .

사용자 ID를 알아야합니다 (컴퓨터의 첫 번째 / 전용 사용자 인 경우 일반적으로 501). "id -u"로 얻을 수 있습니다.

볼륨 이름이 "PRIVATE"(볼륨 이름은 대문자 임)이고 uid가 501이라고하면 / etc / fstab에이 행을 추가하기 만하면됩니다.

LABEL=PRIVATE none msdos -u=501,-m=700

이 파일을 작성 / 편집하려면 루트 여야합니다 (기본 OSX 설치에는 없음).

sudo vim /etc/fstab

다음에 볼륨을 마운트하면 권한 700 및 소유자 ID 501이 부여됩니다.

또한 USB 드라이브 (일반적으로 FAT로 포맷 된 드라이브)에서도 작동합니다.


완벽하게 작동
나 instanceof를

이 방법으로 올바른 권한을 얻기 위해 FAT 형식의 볼륨을 얻을 수 없습니다. 그러나 "Mac OS Extended"를 선택하고 다른 운영 체제에 마운트 할 옵션을 선택하면 chmod로 권한을 설정할 수 있습니다.
emptyset

이것은 훌륭하게 작동했습니다. 보안 볼륨을 마운트 할 때 홈 디렉토리의 특정 지점에 마운트합니다. 'none'값을 마운트 포인트의 명시적인 이름으로 바꿔야한다는 것을 알았습니다.
Alec the Geek

1
/etc/fstab최신 OS X에 파일 이없는 경우에도 작동 etc/fstab합니다. 위와 같이 새 파일을 만드십시오
iggie

33

stdin에서 키를 추가하면 나를 위해 일했습니다.

cat /path/to/id_rsa | ssh-add -k -

1
왜 이것에 공감이 없습니까? 그것은 마운트하지 않고 즉시 작동하며 어쨌든 ssh-agent를 사용하고 있습니까?
pscheit

4
매력처럼 작동-허용 된 답변을 전자해야합니다
hdave

1
WSL Ubuntu를 사용했습니다. 감사!
mydoglixu

7

미친 해결 방법으로 개인 키가 들어있는 ext2 볼륨의 디스크 이미지를 만들어 루프 장치로 마운트 한 다음 여기에서 ssh 키를 사용할 수 있습니다.

1MB의 빈 파일을 만드십시오 :

dd if=/dev/zero of=diskimg bs=1024 count=1024

ext2로 포맷하십시오 (장치가 아니라고 Y를 누르십시오)

mke2fs diskimg

어딘가에 (루트로) 마운트하십시오.

mount -t ext2 -o loop diskimg /my/path/to/diskimg

이제 권한을 설정할 수있는 작은 ext2 파일 시스템이 있습니다. 스크립트를 작성하여 마운트하고 사용중인 시스템에 따라 UID / GID 권한이 올바른지 확인할 수 있습니다 (UID가 일치하지 않을 수 있으므로). 또한 작동하려면 sudo / root 액세스 권한이 필요합니다.


더 간단한 옵션이없는 것 같아
나 instanceof를

1
그것은 너무 잘못-하지만 매우 멋진 :)
워렌

1
@ warren : 나는 '미친'으로 머리말을했다. :-D
Kyle Smith

2

어떤 추가에 대한 StrictModes no당신에 /etc/ssh/sshd_config(그리고 다시로드 / 다시 시작 sshd)이?

편집 : 죄송합니다,이 옵션은 서버 측에만 있습니다 : /


1

올바르게 기억하면 ssh-agent키 권한을 확인하지 않습니다. 그래서 이것은 작동 할 수 있습니다 :

[-S "$ SSH_AUTH_SOCK"] || eval $ (ssh-agent)
ssh-add 경로 / to / id_rsa

참고로, 작동하지 않습니다. ssh-add파일 권한을 확인합니다.
Kyle Smith

0

당신은 마운트 옵션 (당신 수정할 수 있습니다 umask, uid그리고 gid소송에)?


AFAIK 아니오, 그것은 TrueCrypt 볼륨입니다, 내 유일한 옵션으로 장착하는 읽기 전용 및 SSH는 여전히 0777의 불평
나 instanceof를
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.