ssh는 더 이상 ~ / .ssh / config를 사용하지 않습니다


20

내가 할 수있는 것은 ssh 수 없습니다. 약간의 파기 후에 나는 내 홈 디렉토리에서 ssh 구성을 읽지 않는다는 것을 알았습니다.

$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
(...)

모든 것이 작동하는 친구의 동일한 컴퓨터에서 다음과 같이 보입니다.

$ ssh -xvvv server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
(...)

이전에 작동 했으며이 문제를 유발하기 위해 할 수있는 일을 알지 못했습니다. 어떻게 이런 일이 일어날 수 있고 어떻게 고칠 수 있습니까?

tike가 지적한 문서 링크에서

악용 가능성이 있기 때문에이 파일에는 사용자에 대한 읽기 / 쓰기 권한이 있고 다른 사람이 액세스 할 수없는 엄격한 권한이 있어야합니다.

내 권한은 다음과 같습니다

$ ls -la ~/.ssh
total 80
drwx------+ 42 kuba  1029   1428 Jul  1 16:33 ..
-rwx------   1 kuba  1029   1528 May 15 13:07 config
(...)

홈 디렉토리에 대한 혼란으로 문제가있을 수 있다고 생각합니다. 로컬 구성 파일을 강제 실행하면 작동하기 시작하고 갑자기 읽습니다./nas/kuba

$ ssh -xvvvF ~/.ssh/config server
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/kuba/.ssh/config
debug1: /Users/kuba/.ssh/config line 1: Applying options for *
debug1: /Users/kuba/.ssh/config line 39: Applying options for bio
debug2: ssh_connect: needpriv 0
debug1: Connecting to XXXX [YYYY.YYY.YYY.YYY] port 22.
debug1: Connection established.
debug1: identity file /nas/kuba/.ssh/id_dsa type -1
                      ^^^^^^^^^^

그러나 내 집 디렉토리는 괜찮은 것으로 보입니다.

$ cd ~; pwd
/Users/kuba
$ echo $HOME
/Users/kuba

4
문제를 해결할 수있었습니다. ~ / .ssh의 내용을 /nas/kuba/.ssh에 복사했습니다. 따라서 실제로 잘못된 홈 디렉토리를 사용하여 갑자기 ssh에 문제가 있습니다. 실제로 ssh 문제는 아닙니다.
Kuba

마지막 주석은 질문을 편집하는 데 매우 유용한 정보입니다.
David Z

출력은 DSA를 사용 중임을 나타냅니다. RSA로 전환하는 방법은 최고 / 최신이며 DSA가 손상되었다고 생각합니다.
trysis

3
@Kuba 내가 알 수 ssh있는 한 HOME환경 변수 는 무시합니다 . 무시하는 것은 나쁜 습관 입니다. HOME그것이하는 것 같습니다 ssh. 그것이 사용하지 않으면 HOME내가 아는 유일한 대안은에서 그것을 찾는 것 uid입니다. /etc/passwd동일한 항목을 가진 두 개의 항목이 있으면 두 개의 항목 이 서로 다른 홈이더라도 uid동일한 .ssh/config파일을 사용하게됩니다.
kasperd

1
@kasperd, 그 답이되어야합니다. 이 페이지에서 상황에 도움이 된 유일한 빵 부스러기입니다 . 감사!
와일드 카드

답변:


14

사용자 특정과 전역 ssh_config 사이에 갇혀있는 것 같습니다.

자세한 내용을 이해하려면 사용자 구성 파일 ( ~/.ssh/config) 및 시스템 전체 구성 파일 ( /etc/ssh/ssh_config) 의 권한 설정을 확인 하십시오.

이에 대한 자세한 내용은 여기를 참조 하십시오 . 실제로 사용자 기반 .ssh디렉토리 아래의 모든 파일 은 600 config이어야 하고 파일은 644에 있어야합니다. 홈 디렉토리에서 다음 명령을 사용하여이를 설정할 수 있습니다.

chmod 600 ~/.ssh/* 
chmod 644 ~/.ssh/config

그래서 나는 문서에서 처음으로 내 홈 디렉토리에서 구성을 읽고 나중에 전역 (/ etc / ssh / ssh_config)에서 구성을 읽어야한다는 것을 이해합니다. 질문은-왜 로컬 구성을 생략합니까?
Kuba

위의 답변을 업데이트
아견

나는 노력했다. 아무것도 바뀌지 않았다. 더 자세한 내용으로 저의 정서를 업데이트했습니다.
Kuba

편집하는 동안 위의 질문을 크게 변경하지 않은 경우 : debug1 : /Users/kuba/.ssh/config line 1 : * debug1에 대한 옵션 적용 : /Users/kuba/.ssh/config line 39 : bio의 읽기 구성에 대한 옵션 적용, 구성 와일드 카드가 역할을하는 것 같습니다. 정의 된 포트 및 대상 서버로 먼저 테스트하기 위해 간단한 구성 파일을 유지합니다.
tike

실제로 나는 질문을 끝내야 할 정도로 크게 질문을 바꿨다. ssh가 다른 디렉토리를 내 홈 폴더로 취급하는 것 같습니다. ~ 또는 $ HOME이 아닌 것.
Kuba

3

권한 확인

ls -lsd ~/.ssh

ls -ls ~/.ssh/*

권한이 나쁜 경우 ssh 클라이언트는 권한을 읽으려고 시도하지 않습니다.


0 drwx ------ 9 kuba /Users/kuba/.ssh 8 -rwx ------ 1 kuba /Users/kuba/.ssh/config는 내가 그들 모두의 소유자 인 것 같습니다
Kuba

@ 쿠바 시도 ls -la ~ / .ssh /
c4f4t0r

ls -la ~ / .ssh 총 80 drwx ------ 9 쿠바 1029306 Jul 1 16:33. drwx ------ + 42 쿠바 1029 1428 Jul 1 16:33 .. -rw-r--r-- 1 쿠바 1029406 5 월 7 일 14:53 certified_keys -rwx ------ 1 쿠바 1029 1528 5 월 15 일 13:07 구성 -rwx ------ 1 쿠바 1029 1675 5 월 7 일 14:53 id_rsa -rwx ------ 1 쿠바 1029406 5 월 7 일 14:53 id_rsa.pub -rw-r-- r-- 1 kuba 1029 16049 5 월 22 일 09:36 known_hosts
Kuba

@ 정말로, 당신은 홈 사용자 디렉토리가 열리지 않습니까?
c4f4t0r

2
그 + 저기 ... ACL이 아닌가요? 그게 범인일까요?
Jorge Suárez de Lis

0

나는 같은 문제가 있었고 ~/.sshdir (0700) 에 + x 플래그를 설정하고 0600을 설정하여 문제를 해결할 수있었습니다 ~/.ssh/config.


0

가치있는 것에 대해, 나는 똑같은 문제가 있었고 ssh를 다시 만들어서 고쳤습니다. .ssh 폴더를ssh 하도록하고 (일부 ssh 명령을 실행하고) 필요한 권한을 가지고 나중에 필요한 파일을 복사 . (600으로 구성).

폴더 .ssh가 승인되지 않은 방식으로 수정 되면 ssh가 의심됩니다 ...


0

NFS 마운트 파일 시스템에있는 경우 SSH는 로컬 구성을 읽지 않습니다. 모든 권한이 잘 될 수 있고 SSH (최소 버전 6.6)가 사용자 구성을 읽지 않는 이유를 표시하지 않기 때문에 확인해야합니다. 그러나 -F옵션 을 사용하면 NFS 볼륨에서 읽습니다 .


0

MacO에서 동일한 문제가 발생했습니다. 수동 로그인 (ssh @)의 디버그 정보를 보면 ssh가 내 홈 디렉토리가 /srv/home/<userid>있고 그 .ssh디렉토리를 찾고 있다고 생각 했으며 그 디렉토리를 무시했습니다./Users/<userid>/.ssh/

Mac을 특정 방식으로 설정하는 작업과 관련이있을 수도 있지만 확인 ssh하고 운영 체제가 홈 디렉토리의 위치에 동의하는지 확인하는 것이 좋습니다 .)


0

'kasperd'가 질문에 대한 의견에 표시된 것처럼 ssh 반드시 '$ {HOME} /. ssh / config'를 찾을 필요는 없습니다. 알다시피, 홈 디렉토리가 로그온 당시와 새 홈이 주장되기 전에 어디에 있는지 더 깊이 파고 배우는 것이 중요합니다.

출력을 살펴볼 힌트 ssh -xvvvF ~/.ssh/config server 는이 같은 질문에 대답하는 데 매우 통찰력이있었습니다. '/ etc / passwd'파일에서 서로 다른 두 사용자 이름이 동일한 UID를 갖는 시스템에서 자신을 발견하면이 문제가 발생했습니다. 두 사용자는 '/ etc / passwd'에 서로 다른 HOME 디렉토리가 설정되어 있습니다.

이러한 시나리오에서 '/ etc / passwd'파일에 UID가 중복되어 두 번째 사용자로 로그인 한 경우, ssh SSH를 실행하는 사용자의 일치하는 UID와 함께 첫 번째 사용자의 홈 디렉토리를 사용하는 것으로 나타 명령.

물론이 사용 사례는 매우 이상하며 대부분의 사람들에게는 도움이되지 않지만 실제로는 발생했으며이 Q / A는 문제 해결에 도움이되었습니다.


0

파일 권한 설정 때문입니다.

당신의 확인 .ssh 도 홈 디렉토리 권한 설정을 확인, 디렉토리 및 파일 권한을.

나를 위해, 나는 다른 사람들이 내 개인 파일을 보길 원하지 않기 때문에 제거합니다. x 내 집 디렉토리의 권한을 합니다. ssh가 잘못된 경로의 인증 된 키를 찾도록합니다.

이 문제를 해결하는 한 가지 방법은 다음과 같은 다른 권한 경로를 설정하는 것입니다 /etc/ssh/sshd_config.

AuthorizedKeysFile .ssh / authorized_keys / etc / ssh / authorized_keys

그런 다음 술집을에 복사하여 /etc/ssh/authorized_keys저 를 위해 일했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.