.ssh
폴더 에서 권한을 변경 한 후 개인 키를 사용하는 소프트웨어를 사용할 때마다 매번 암호를 입력해야합니다. id_rsa
암호를 사용하는 앱을 사용할 때마다 암호를 입력 할 필요가 없으면 파일 에 대한 권한이 무엇이어야 합니까?
현재 내 권한은 다음으로 설정되어 있습니다.
-rw-------@ 1 Jody staff 114 Nov 4 23:29 config
-rw------- 1 Jody staff 1743 Oct 21 2009 id_rsa
-rw-------@ 1 Jody staff 397 Oct 21 2009 id_rsa.pub
-rw-------@ 1 Jody staff 3855 Sep 13 22:35 known_hosts
답변
일반적으로 권한은 다음과 같습니다.
.ssh
예배 규칙서:700 (drwx------)
- 공개 키 (
.pub
파일) :644 (-rw-r--r--)
- 개인 키 (
id_rsa
) :600 (-rw-------)
- 마지막으로 홈 디렉토리는 그룹이나 다른 사람들이 (기타) 쓸 수 없어야합니다
755 (drwxr-xr-x)
.
매번 시스템 / 사용자 암호를 입력해야하고 이전에는 입력하지 않아도된다고 가정합니다. cdhowie의 답변은 키를 생성 할 때 암호 / 암호를 설정했다고 가정하고, 그렇게하면 ssh 에이전트를 사용하지 않으면 매번 암호를 입력해야합니다.
답변
나는 이것을 영원히 고투하고 마침내 필요한 것이 무엇인지 알아 냈습니다. 교체 $USER
서버에에 로그인 할 SSH 사용자 이름으로 사방. 로그인을 시도하는 root
경우 /root/.ssh
등 을 사용해야 /home/root/.ssh
하는 대신 루트가 아닌 사용자를위한 방법입니다.
- 서버의 홈 디렉토리는 다른 사람이 쓸 수 없어야합니다.
chmod go-w /home/$USER
- 서버의 SSH 폴더에는 700 개의 권한이 필요합니다.
chmod 700 /home/$USER/.ssh
- Authorized_keys 파일에는 644 권한이 필요합니다.
chmod 644 /home/$USER/.ssh/authorized_keys
- 즉, 확인
user
파일 / 폴더를 소유하지root
:chown user:user authorized_keys
및chown user:user /home/$USER/.ssh
- 생성 된 공개 키 (from
ssh-keygen
)를authorized_keys
서버 의 사용자 파일에 넣습니다. - 사용자의 홈 디렉토리가 예상 한대로 설정되어 있고 수정 한 올바른
.ssh
폴더가 포함되어 있는지 확인하십시오 . 그렇지 않은 경우usermod -d /home/$USER $USER
문제 해결에 사용 하십시오 - 마지막으로 ssh를 다시 시작하십시오.
service ssh restart
- 그런 다음 클라이언트에 로컬 사용자
.ssh
폴더 에 공개 키 및 개인 키 파일이 있는지 확인 하고 로그인하십시오.ssh user@host.com
답변
또한 다른 사용자가 홈 디렉토리를 쓸 수 없는지 확인하십시오.
chmod g-w,o-w ~
답변
권한과 관련이 없어야합니다. 개인 키는 비밀번호로 암호화되므로 개인 키를 해독하고 사용할 수 있으려면 입력해야합니다.
암호 해독 된 키를 캐시하고이를 필요한 응용 프로그램에 제공 할 수있는 ssh 에이전트 실행을 고려할 수 있습니다.
답변
Felipe는 정확합니다. .ssh 디렉토리를 포함하는 디렉토리는 그룹 또는 다른 사람이 쓸 수 없어야합니다. 따라서 ssh-keygen 명령에 암호를 지정하지 않고 .ssh 디렉토리가 홈 디렉토리에 있다고 가정하고 chmod go-w ~
실행 후 ssh’ing 할 때 비밀번호를 묻는 메시지가 계속 표시되면 다음으로 논리적으로 시도 ssh-keygen -t rsa; cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
하십시오.