키를 사용하여 ssh/scp를 통해 내 홈 디렉터리에 액세스하고 싶습니다. 일반적으로 나는 pub 키를 ~/ssh/authorization-keys에 넣겠지만
- SSH 키를 추가하거나 삭제하는 기능을 비활성화합니다(~/ssh/authorized_keys 끄기).
- 사용자는 시스템 어디에서나 rm -f pub_key를 사용하거나 pub_key를 수정할 수 없어야 합니다.
- 다른 계정의 공개 키가 저장되는 디렉토리를 "일반" 사용자가 읽을 수 없도록 만듭니다. 예를 들어 /etc/sudoers.d/는 root1만 읽을 수 있습니다.
그게 가능합니까? 어떻게 해야 합니까?
답변1
당신은 두 가지를 달성하고 싶습니다:
인증이 금지되어 있습니다
~/.ssh/authorized_keys
제안된 대로
AuthorizedKeysFile
몇 가지 다른 장소로 설정하십시오. 논의가 필요한 경우에는 평가되지 않습니다(그렇지 않으면 아무것도 해결되지 않습니다).놓다
AuthorizedKeysCommand
이 명령은 사용자가 선택한 위치에서 인증 키를 반환합니다.
예를 들어:
AuthorizedKeysFile /etc/ssh/%u/authorized_keys
AuthorizedKeysCommand /usr/sbin/get_user_keys
AuthorizedKeysCommandUser dedicated_user
스크립트는 /usr/sbin/get_user_keys
다음과 같습니다.
#!/bin/sh
cat /etc/ssh/%u/authorized_keys
이는 기본적으로 키를 읽기 전용으로 만들고 문제를 해결합니다.
답변2
시스템 구성 파일을 편집하지 않고도 원하는 것을 대부분 얻을 수 있는 방법이 하나 있습니다. 다른 모든 것을 평소와 같이 사용 ~user/.ssh/authorized_keys
하고 변경할 수 없게 만듭니다.
~user/.ssh
디렉터리를 변경 불가능하게 만들어 디렉터리가 이동하거나 삭제되는 것을 방지할 수 있습니다 . .ssh
이는 디렉터리가 자신의 콘텐츠로 새 디렉터리를 생성하는 것을 원하지 않는 경우 중요합니다. 또한 그 안에 있는 파일이 추가, 이동 또는 삭제되는 것을 방지합니다.
다양한 파일(예: ~user/.ssh/authorized_keys
또는 ~user/.ssh/id_rsa.pub
)을 변경 불가능하게 만들어 해당 파일이 이동되거나 삭제되는 것을 방지할 수 있습니다. 또한 편집할 수 없도록 합니다.
변경할 수 없는 디렉터리와 파일은 이런 방식으로 보호됩니다.주인을 상대로도. 불변성이 제거될 root
때까지 이러한 방식으로 사용자가 보호합니다 .root
디렉터리와 파일을 불변으로 만들기 전에 개인정보 보호를 위해 디렉터리와 파일에 대한 권한이 올바르게 설정되어 있는지 확인하세요. 불변성은 이를 방지하기 때문입니다.
다음과 같이 변경할 수 없는 항목을 설정합니다.
sudo chattr +i [directory path|file path]
.ssh
특히 편리한 명령을 사용하면 그 안에 있는 모든 파일을 한 번에(또는 하위 디렉터리가 있는 경우 반복적으로) 보호 할 수 있습니다 .
sudo chattr -R +i ~user/.ssh
불변성을 끄고 무언가를 변경하려면(완료되면 다시 켜야 합니다):
sudo chattr -i [directory path|file path]
원하는 내용을 빠르게 편집할 수 있는 방법은 다음과 같습니다.
sudo chattr -R -i ~user/.ssh