오.
ForceCommand internal-sftp
/etc/ssh/sshd_config
SFTP를 통한 로그인을 허용하기 위해 이리저리 살펴본 후 root
Amazon EC2 상자에서 SSH를 잠갔습니다.
SFTP는 여전히 잘 작동하지만 PuTTY는 즉시 정지됩니다. 예를 들면 다음과 같습니다.
여기서 이상한 점은 SFTP가 여전히 잘 작동하고 현재처럼 로그인할 수 있다는 것입니다 root
(변경 사항으로 인해). 따라서 WinSCP 창이 열려 있고 원하는 항목을 찾아 편집할 수 있습니다.
다음 명령을 사용하여 다른 Linux 시스템에서 연결을 시도할 때:
ssh -i keyfile.pem [email protected] -p [portnumber]
나는 다음과 같은 응답을 받았습니다.
This service allows sftp connections only.
Connection to [hostname] closed.
성공적으로 제거했지만 원격으로 실행하는 ForceCommand internal-sftp
데 /etc/ssh/sshd_config
문제가 있습니다 service ssh restart
. sftp
접두사를 사용하여 이 작업을 수행 하면 !
작동한다고 표시되지만 수신 대기 포트가 변경되지 않았기 때문에 작동하지 않는다고 알 수 있습니다.
답변1
ForceCommand internal-sftp
구성 파일을 새로 고치기 위해 서버를 제거 /etc/ssh/sshd_config
하고 다시 시작했고 다시 돌아왔습니다.
답변2
sftp
접두사를 사용하여 이 작업을 수행하면!
작동한다고 표시됩니다.
가지다! 그러나 !
서버가 아닌 클라이언트에서 명령을 실행하십시오. 따라서 클라이언트에서 실수로 변경할 수 있는 사항을 알고 있어야 합니다.
SFTP 프로토콜은 의도적으로 클라이언트가 서버에서 실행할 명령을 지정하는 것을 허용하지 않습니다. 그것은 단지 파일 전송 프로토콜일 뿐입니다.
그러나 실행될 파일에 명령을 기록하여 서버에서 명령을 간접적으로 트리거할 수 있습니다. 예를 들어, at 작업을 넣을 수 있습니다 ( 작업 파일과 파일에 무엇을 쓸지 /var/spool/cron/atjobs
알고 있다면 at 스풀 형식이 완전히 사소한 것은 아닙니다). 편집 하거나 다른 crontab을 .SEQ
사용할 수 있습니다 . /etc/crontab
일반적으로 SFTP 전용 사용자는 홈 디렉터리로 제한되지만 전체 파일 시스템에 대한 루트 액세스 권한이 있는 경우 전체 SSH 액세스 권한이 없는 SFTP는 실제로 보안을 제공하지 않으며 불편할 뿐입니다.
그러므로:
- 다운로드 및 .
sftp
/etc/ssh/sshd_config
/etc/crontab
- 다운로드한 파일을 편집하여 해당 줄을 제거하고 루트(또는 초기화 시스템이 원하는 모든 것)로 실행되는 크론 작업을 추가하세요
ForceCommand
.service ssh restart
/etc/init.d/ssh restart
- 수정된 파일을 업로드 하는 데 사용됩니다
sftp
. - 크론 작업이 실행될 때까지 기다립니다.
ssh
로그인하고 임시 크론 작업을 편집하는 데 사용됩니다 .