내 서버에 특별한 사용자가 있습니다. 이를 이라고 부르겠습니다 foo
. 저는 포트포워딩용으로만 사용하고 있습니다.
.ssh/authorized_keys2
로그인을 차단하고 특정 포트만 여는 사용자 설정:
no-pty,no-X11-forwarding,permitopen="localhost:4000",\
command="/bin/echo do-not-send-commands" ssh-rsa <long public key> bar@foobar
또한 해당 쉘은 in foo
으로 설정됩니다 ./bin/false
/etc/passwd
컴퓨터에 로그인할 수 없습니다(이것이 제가 원하는 것입니다).
$ ssh foo@remote
PTY allocation request failed on channel 0
Connection to remote closed.
하지만 포트를 열 수는 있어요. 흥미롭게도 포트 4000을 열 수 있지만 권한이 없는 다른 포트도 열 수 있습니다.
$ ssh -N -R 4001:localhost:22 foo@remote
> # connection established
remote
사용자 는 bar
다음과 같이 연결할 수 있습니다.
$ ssh -p4001 bar@localhost
bar@localhost's password:
Last login: Fri Sep 26 09:23:45 2014 from localhost.localdomain
...
사용자가
foo
포트 4001을 열 수 있는데 왜 포트를 으로 제한합니까permitopen="localhost:4000"
?
답변1
아, 설명서를 다시 읽어보면 그 이유를 알 수 있습니다.
permitopen="host:port"
Limit local ``ssh -L'' port forwarding....
U&L Q&A에서도 다음과 같은 제목이 언급되었습니다.SSH를 제한하는 방법외딴포워드 포트?.