nologin 사용자를 사용하여 ssh를 통해 명령을 실행할 수 있습니까?

nologin 사용자를 사용하여 ssh를 통해 명령을 실행할 수 있습니까?

사용자가 loginShell=/sbin/nologin아직 할 수 있는 경우

ssh user@machine [command]

사용자의 홈 디렉토리에 인증에 사용할 올바른 SSH 키가 있다고 가정합니까?

내 목표는 사용자가 로그인하지 않은 상태를 유지하면서도 네트워크의 다른 컴퓨터에서 명령을 실행할 수 있도록 하는 것입니다("sudo -u"를 사용하는 것과 유사). 이것이 합리적인 프로세스인지 궁금합니다.

답변1

/sbin/nologin사용자의 셸(또는 /bin/false또는 /bin/true각각) 로 설정합니다 .거의 꽤)는 사용자가 로그인하고 명령을 실행하는 것을 금지합니다. SSH는 명령을 실행하기 위해 항상 사용자의 로그인 셸을 호출하므로 특정 명령을 실행할 수 있도록 로그인 셸을 설정해야 합니다.

사용자가 몇 가지 명령만 실행할 수 있도록 하는 몇 가지 제한된 셸이 있습니다. 예를 들어RSSH그리고스폴리이는 모두 사용자가 미리 정의된 명령(예 scp: sftp-server, rsync, ...)을 실행할 수 있도록 하는 쉘입니다. 당신은 또한 볼 수 있습니다Linux에서 사용자 액세스 제한그리고SCP에 탄피가 필요한가요?

답변2

대답은 '아니요'인 것 같습니다.

ssh user@machine [command]

SSH 키를 사용하면 다음과 같은 결과만 발생합니다.

This account is currently not available

명령을 실행하는 것이 아니라 bash에 대한 액세스 권한을 부여해야 하는 것 같습니다.

답변3

이것이 가능한지는 모르겠지만(테스트하기는 쉬워야 하지만) 어떤 경우든 귀하의 질문에 어떻게든 답변하고 문제를 해결할 수 있는 기능이 있습니다.

의 키 라인에 명령을 추가할 수 있습니다 authorized_keys. 이 경우 명령이 실행되고 다른 작업은 수행되지 않습니다. /sbin/nologin어쨌든 쉘은 무시되어야 하기 때문에 이것이 효과가 있을 것이라고 생각합니다 .

그러나 허용하는 각 명령마다 다른 키가 필요합니다.

관련 정보