공급자에게 보낼 sshkey를 생성하여 루트가 지정된 감옥 폴더에 연결할 수 있도록 하려고 합니다: /home/jail/home/ 폴더 설정 및 권한은 해당 특정 사용자에게 설정됩니다. "user1" user1:user1
ssh-keygen을 사용하여 키를 생성할 때마다 항상 .pub 하단에 루트 사용자가 root@system으로 나열됩니다. 공급업체가 루트로 연결하는 대신 user1로 연결하여 chroot 디렉터리에만 액세스할 수 있기를 원합니다. 사용자 계정에는 sshkey를 사용하여 로그인하여 데이터를 드롭 폴더로 SFTP할 수 있기 때문에 로그인 자격 증명이 없습니다.
user1 계정에는 권한이 거의 없고 ssh-keygen을 실행할 수도 없기 때문에 키를 생성할 수 없습니다. 내가 시도하는 다른 모든 것은 내가 로그인하는 계정이기 때문에 root@system으로 설정합니다. 이것은 일반적인 관행임에 틀림없지만 나는 그것을 알아낼 수 없습니다. 나는 쌍의 .pub를 chrootedauthorized_hosts 파일에 넣은 다음 SFTP를 통해 연결하고 파일을 삭제할 수 있도록 개인 키를 안전하게 보낼 것이라고 가정합니다.
sftp -i 파일을 사용하여 sftp를 시도하면 모든 것이 잘 작동합니다.[이메일 보호됨]. 그러나 sftp -i file을 수행할 수도 있습니다.[이메일 보호됨]루트 권한으로 들어갈 수 있게 해줍니다. 공급자가 사용자 이름으로 루트만 사용하고 chroot를 우회하는 것을 방지하면 됩니다.
답변1
파일에서 실제 공개 키 자체 뒤에 오는 내용은 .pub
실제로는 단지 주석일 뿐입니다. 일반적으로 username@hostname
키를 생성한 사용자와 키를 생성한 호스트가 기본값입니다. 완전히 제거하거나 감옥에 갇힌 단일 사용자 키로서의 역할을 나타내는 주석으로 대체할 수 있습니다.
ssh-rsa [HASH GOES HERE] root@myhost
가능한:
ssh-rsa [HASH GOES HERE] Special keypair jailed shell access
이는 생성 시 스위치를 사용하여 수행할 수 있습니다 -C
. 인용하다 man ssh-keygen
:
-C comment
Provides a new comment.
따라서 이렇게 하면 ssh-keygen -C "This is a comment"
공개 키가 다음과 같이 표시됩니다.
ssh-rsa [HASH] This is a comment