ssh가 유닉스 시스템에 로그인할 때 파일의 내용(파일이 존재하는 경우)을 인쇄하고 싶습니다. MOTD에서 배너를 인쇄하고 설치했습니다 sshd_config
. 다른 파일도 인쇄하고 싶습니다. 어떻게 해야 하나요? rc 파일을 사용하려고 하는데 아직 작동하지 않습니다. 파일 내용을 환경의 변수로 설정하고 rc를 통해 인쇄할 수 있습니까? 제안 사항이 있습니까?
답변1
당신은 그것을 사용할 수 있습니다군대 본부(sshd 구성 옵션)
클라이언트 및 ~/.ssh/rc(있는 경우)에서 제공하는 모든 명령을 무시하고 ForceCommand에서 지정한 명령을 강제로 실행합니다. 명령은 사용자의 로그인 쉘과 -c 옵션을 사용하여 호출됩니다. 이는 쉘, 명령 또는 하위 시스템 실행에 적용됩니다. Match 블록 내에서 가장 유용합니다. 클라이언트가 원래 제공한 명령은 SSH_ORIGINAL_COMMAND 환경 변수에서 찾을 수 있습니다. "internal-sftp" 명령을 지정하면 ChrootDirectory와 함께 사용할 때 지원 파일이 필요하지 않은 in-process 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에 있으면 해당 위치에 메시지가 표시됩니다.