답변:
구성 파일 (/ etc / ssh / sshd_config)에 다음 매개 변수를 추가하면됩니다.
ForceCommand Forces the execution of the command specified by ForceCommand, ignoring any command supplied by the client and ~/.ssh/rc if present. The command is invoked by using the user's login shell with the -c option. This applies to shell, command, or subsystem execution. It is most useful inside a Match block. The command originally supplied by the client is available in the SSH_ORIGINAL_COMMAND environment variable. Specifying a command of “internal-sftp” will force the use of an in-process sftp server that requires no support files when used with ChrootDirectory.
다른 옵션은 사용자별로 .ssh / rc 파일을 사용하는 것입니다.
ForceCommand 메소드를 사용하려면 ForceCommand /usr/bin/ownscript
파일 맨 아래 /etc/ssh/sshd_config
(서버)에 추가 하면됩니다 .
스크립트는 다음과 같습니다.
#!/bin/bash
#Script file for ssh
#
#put your commands here
echo "test" > /tmp/test.txt
#
#exit by calling a shell to open for the ssh session
/bin/bash
스크립트를 chmod하는 것을 잊지 마십시오 sudo chmod +x /usr/bin/ownscript
/etc/ssh/sshrc
파일을 만들 수 있습니다 . 참조하십시오 man 8 ssh
. 단일 사용자에게이 기능을 원하면을 사용하십시오 ~/.ssh/rc
.
다음은 /etc/ssh/sshrc
누군가가 컴퓨터에 로그인 할 때 dbus를 통해 알려주 는 샘플 입니다. 잊지 마세요 chmod +x
:
#!/bin/bash
ip=`echo $SSH_CONNECTION | cut -d " " -f 1`
notify-send -u CRITICAL "SSH connection from ${ip}" "User $USER just logged in from $ip"
로그온 중에 스크립트를 실행하려면 / etc / profile 스크립트 내에서 호출로 추가하십시오. 이것은 ssh 로그온뿐만 아니라 모든 로그온에 대해 실행됩니다.