Jako nieuprzywilejowany użytkownik, jak mogę skonfigurować sshd, aby zezwalał na wykonywanie tylko określonych poleceń, gdy jest on uwierzytelniany hasłem?

0

Zwykle loguję się na serwerze SSH (gdzie jestem nieuprzywilejowanym użytkownikiem) przy użyciu moich kluczy publicznych. Używam również uwierzytelniania za pomocą hasła, gdy używam serwera jako repozytorium git-annex .

Chcę, aby umożliwić wykonywanie tylko git-annexpowiązanych poleceń, gdy sshd jest uwierzytelniane hasłem. git-annexwyposażony jest w opakowaniu, które jest odpowiednikiem git-shelldla git. Wiem, że mógłbym authorized_keysto zrobić w innych sytuacjach, ale nie w tym konkretnym przypadku.

Jak mogę to zrobić? Serwer jest serwerem Debian z OpenSSH_6.0p1 Debian-4 + deb7u3.

Pteromys
źródło
@ int_541 Dobrze znana technika ograniczania dostępu przez authorized_keysmoże być sprzeczna z twoim stwierdzeniem, w zależności od tego, co rozumiesz przez „typ uwierzytelnienia”. (w końcu jest to problem po stronie sshd, a nie systemu operacyjnego.)
Pteromys

Odpowiedzi:

1

Umieść to przed każdym kluczem ssh ~/.ssh/authorized_keys, którego chcesz używać wyłącznie w przypadku git-annex ( zamień _MY_ANNEX_REPO_DIR_ i _PATH_TO_GIT_ANNEX_SHELL_ odpowiednimi wartościami):

command="GIT_ANNEX_SHELL_DIRECTORY=_MY_ANNEX_REPO_DIR_ _PATH_TO_GIT_ANNEX_SHELL_/git-annex-shell -c $SSH_ORIGINAL_COMMAND",no-port-forwarding,no-x11-forwarding,no-agent-forwarding

Obecnie próbuję zastąpić Dropbox za pomocą git-annex. Powyższe ustawienia działają dla mnie już od tygodnia. Zaktualizuję ten post, jeśli odkryję jakieś problemy.

Heiko Reese
źródło
0

Nieuprzywilejowany użytkownik nie może skonfigurować sshd. Możliwe, że możesz ograniczyć wpisy kluczy autoryzowanych do jednego polecenia. Ale nie przy użyciu hasła do logowania. Potrzebujesz pomocy roota, aby zmienić powłokę logowania lub coś takiego. Jeśli stworzy ograniczoną skorupę lub chrootowane więzienie, to dostosowanie jest możliwe.

bbaassssiiee
źródło