
해당 파일이 존재하는 경우 유닉스 시스템에 ssh 로그인할 때 파일 내용을 인쇄하고 싶습니다. MOTD는 이미 에 설정된 배너와 함께 인쇄하고 있습니다 sshd_config
. 다른 파일도 인쇄하고 싶습니다. 어떻게 해야 이 일을 할 수 있을까요? rc 파일을 얻으려고 하는데 작동하지 않습니다. 파일 내용을 환경의 변수로 설정하고 rc를 통해 인쇄할 수 있습니까? 어떻게 제안하시겠습니까?
답변1
당신이 사용할 수있는강제명령(sshd 구성 옵션)
클라이언트가 제공한 모든 명령과 ~/.ssh/rc(있는 경우)를 무시하고 ForceCommand에 의해 지정된 명령을 강제로 실행합니다. 명령은 -c 옵션과 함께 사용자의 로그인 쉘을 사용하여 호출됩니다. 이는 셸, 명령 또는 하위 시스템 실행에 적용됩니다. Match 블록 내에서 가장 유용합니다. 클라이언트가 원래 제공한 명령은 SSH_ORIGINAL_COMMAND 환경 변수에서 사용할 수 있습니다. ''internal-sftp'' 명령을 지정하면 ChrootDirectory와 함께 사용할 때 지원 파일이 필요하지 않은 프로세스 내 SFTP 서버를 강제로 사용하게 됩니다. 기본값은 '없음'입니다.
메시지를 표시할 래퍼 스크립트를 가리키도록 만든 다음 셸을 실행하세요.
샘플 sshd_config(OpenSSH_7.2p2):
Port 22
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 1024
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin prohibit-password
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
UsePAM yes
ForceCommand /usr/local/bin/ssh-wrapper
/usr/local/bin/ssh-래퍼
#!/bin/sh
[ -r "/etc/ssh_banner" ] && cat /etc/ssh_banner
CMD=${SSH_ORIGINAL_COMMAND:+-c $SSH_ORIGINAL_COMMAND}
exec $SHELL -l $CMD
이 파일이 있으면 /etc/ssh_banner에 메시지가 표시됩니다.