SFTP를 사용할 때 "마지막 로그인:" 메시지를 방지하려면 어떻게 해야 합니까?

SFTP를 사용할 때 "마지막 로그인:" 메시지를 방지하려면 어떻게 해야 합니까?

Ubuntu GNU/Linux 12.04에는 다음 명령을 사용하여 감옥 으로 설정된 johndoe그룹에 속한 사용자 가 있습니다.sftponlysftpchroot

Subsystem sftp internal-sftp

Match Group sftponly
        ChrootDirectory %h
        ForceCommand internal-sftp
        AllowTcpForwarding no

끝에 /etc/ssh/ssh_config... ( 에서 설명된 것처럼) 사용자 디렉터리 home의 모든 구성 요소 root는 다른 사용자나 그룹이 쓸 수 없는 소유 디렉터리 입니다 . 그의 감옥에는 쓰기 가능한 디렉토리가 있습니다 :man sshd_configChrootDirectorychrootfiles

sudo groupadd sftponly    
sudo mkdir -p /home/sftponly/johndoe/files
sudo useradd -d /home/sftponly/johndoe -g sftponly -s /usr/sbin/nologin johndoe
sudo chmod go-w /home/sftponly/{,johndoe}
sudo chown johndoe:sftponly /home/sftponly/johndoe/files
sudo chmod ug+rwX /home/sftponly/johndoe/files

(쉘을 둘 다로 설정하면 /bin/false아무 효과가 없습니다. 쉘이 연결되면 "MOTD"가 표시된 다음 연결이 끊어집니다. 이는 예상된 동작입니다.)sshsftpnologinssh

그러나 sftp메시지는 실패합니다 Received message too long 1416128883. 이 실패는 sftp"클린 로그인"에 예상되는 "MOTD"(오늘의 메시지)로 인해 발생한다는 것을 알고 있습니다 . 다음 명령을 사용하여 서버의 모든 "MOTD" 부분을 비활성화하려고 했습니다(이 결과):

  • PrintLastLog noPrintMotd no끝에 및 를 추가 /etc/ssh/ssh_config하고 sshrestart 를 사용하세요 restart ssh. (효과 없음. 테스트에는 ssh"MOTD" 및 "마지막 로그인:"이 표시됩니다. )

  • session optional pam_motd.so댓글을 달으세요 /etc/pam.d/sshd. (MOTD 방지. 그러나 "LastLog"에는 해당 항목이 없으므로 ssh"Last Login:"으로 테스트하면 여전히 표시됩니다.sftp여전히 실패했습니다.)

  • 주석 처리 session optional pam_lastlog.so하고 session optional pam_motd.so주석 처리하십시오 /etc/pam.d/login. (효과 없음. 테스트 결과 sshMOTD 및 "마지막 로그인:"이 표시되었습니다. )

  • .hushlogin.을 사용하여 클라이언트에 파일을 만듭니다 touch ~/.hushlogin. (효과 없음.)

아이디어가 부족해요. 이 "마지막 로그인:" 메시지는 어디에서 왔으며 어떻게 비활성화할 수 있습니까? (이상적으로는 로그인에만 사용 sftp하고 ssh로그인 에는 사용하지 않지만 sftp목적 에 따라 ssh메시지가 동시에 표시되거나 또는 아니다)?

답변1

위와 같은 불합리한 행동이 발생한 이유는 내 오타 때문이었습니다. 편집해야 할 것은 /etc/ssh/sshd_config(클라이언트용)이 아니라 (데몬용)입니다. 다른 사람에게 도움이 될 수 있도록 여기에 질문을 남깁니다.ssh/etc/ssh/ssh_configssh

답변2

내 시스템에서는 Pam에서 가져온 것입니다.

/etc/pam.d/postlogin정확하게.

기존 줄을 주석 처리하고 다음을 추가하여 메시지를 제거했습니다.

session     optional      pam_lastlog.so silent

답변3

내가 사용하는 스크립트에서 /etc/motd를 필터링하기 위해(이 예제는 git 프로그램에 대한 것임)
git pull 2>&1 | grep -vF -f ~/bin/remote.motd | egrep -v "^$|^ $"
~/bin/remote.motd 파일은 원격 시스템에서 제공한 motd의 복사본 붙여넣기입니다.

답변4

/var/log/lastlog를 삭제했는데 "마지막 로그인" 메시지가 영원히 사라졌습니다. 테스트한 모든 배포판(Ubuntu 및 SUSE)에서 작동합니다.

내가 어떻게 이 아이디어를 생각해냈나요?

어느 로그인
문자열 /bin/login 마지막 |

관련 정보