우리 팀은 모든 호스트에게 환영 배너를 추가하기로 결정했습니다. 에 메시지를 추가하는 대신 팀원이 에 /etc/motd
메시지를 추가했습니다 .echo
~/.cshrc
이는 scp
호스트 간의 관계를 파괴하는 것입니다. 누군가 이것이 어떻게 깨지는지 설명할 수 있습니까 scp
? cshrc
이렇게 할 때 로드가 되어 있어도 scp
? 이러한 에코 메시지 중 일부는 어떻게 이를 깨뜨릴 수 있습니까?
나는 내부 작동을 모른다 scp
.
우리가 추가한 메시지 ~/.cshrc
:
echo "##############################################################################"
echo " Alert! Aler! Alert! Alert! Alert! Alert!"
echo "This is a restricted box, any actions performed here will be reported to [email protected]"
echo "##############################################################################"
답변1
전송 위에서 실행되는 명령은 ssh
서버를 시작하기 전에 많은 출력을 기대하지 않습니다. 이는 많은 유틸리티에 영향을 미칩니다.
해결책은 다음 상황에서만 관리 팀이 메시지를 인쇄하도록 하는 것입니다.표준 출력터미널에 연결되었습니다.
if ( $?prompt ) then
echo "Secure machine message..."
echo "More warnings"
echo "Etc."
endif
더 좋은 점은 전혀 넣지 않고 .cshrc
메시지 내용 자체 /etc/issue.net
와 표시앞으로로그인. 그러나 /etc/ssh/sshd_config
다음과 같은 줄을 사용하여 활성화해야 할 수도 있습니다 .
Banner /etc/issue.net
답변2
비대화형 세션에서는 아무것도 인쇄할 수 없습니다. 이는 SFTP 또는 SCP와 같은 엄격한 프로토콜을 사용하는 모든 클라이언트를 중단시킵니다.
사용합니다 /etc/motd
(대화형 세션에만 해당).
또는 sshd_config
명령을 사용하십시오 Banner
.
TERM
또는 무엇이든 인쇄하기 전에 대화형 세션을 테스트합니다(예: 테스트 또는 변수 존재 여부 prompt
).
배경 정보는 서버 오류 질문에 대한 내 답변을 참조하세요.사용자당 SSH MOTD.
답변3
나는 .cshrc 파일의 다른 것 위에 다음 줄을 넣어야 한다고 생각합니다. 그렇지 않으면 대화형 쉘이므로 sftp나 ftp 또는 다른 작업을 수행할 수 없기 때문입니다.
이러한 오류는 일반적으로 터미널에 출력을 생성하는 제어 파일(.cshrc, .profile, .bashrc 등)에서 명령을 실행하는 셸로 인해 발생합니다. 이 출력은 SSH 데몬과 SFTP 서버 하위 시스템 간의 통신을 방해합니다. 이러한 명령의 예로는 date 또는 echo가 있습니다. 메일을 확인하기 위해 mail 명령을 사용하는 경우에도 오류가 발생할 수 있습니다. 이 문제를 해결하려면 쉘이 대화형인 경우에만 실행되는 조건문에 출력을 생성하는 명령을 넣어야 합니다. (모든 수정사항은 관련 쉘 제어 파일의 맨 위에 있어야 합니다.
브라이언 베이커
답변4
내부에 ~/.cshrc
. 이렇게 하면 수리가 더 쉬워질 것이라고 믿습니다. ~/.cshrc
읽을 수 있도록 코드 변경
echo 1>&2 "##############################################################################"
echo 1>&2 " Alert! Aler! Alert! Alert! Alert! Alert!"
echo 1>&2 "This is a restricted box, any actions performed here will be reported to [email protected]"
echo 1>&2 "##############################################################################"