サーバーにSSHで接続するたびに、サーバーは最終ログイン日時を出力します。しかし、私はそのフォーマットが好きではありません。例:
Last login: Sun Jan 31 12:12:13 2016 from 127.0.0.1
(構成内の)メッセージを無効にし、代わりにその場所をmotd(00ヘッダー)に変更したいと思います。どうすればいいですか?外観の例:
Last login: 2016-01-31 12:12:13 from 127.0.0.1
Serverfaultの関連する質問に示されているように、 SSHの「最終ログイン」メッセージを編集するにはどうすればよいですか? 、行自体は/usr/sbin/sshd
バイナリに組み込まれています。したがって、それを編集するには、ソースコードを編集して自分で再コンパイルする必要があります。これは、必要以上に面倒で手間がかかります。
Serverfaultの質問で見つかった結果の確認
DIR:/xieerqi
skolodya@ubuntu:$ file /usr/sbin/sshd
/usr/sbin/sshd: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=b0aaeed8d674586459d21eb2d548a848c33de3a9, stripped
DIR:/xieerqi
skolodya@ubuntu:$ strings /usr/sbin/sshd | grep -i "last login"
Last login: %s
Last login: %s from %s
ただし、その日のメッセージと最後のログインを出力しないようにsshd
に指示することはできます( この回答 による)
任意のエディターでファイル/etc/ssh/sshd_config
を開きます。たとえば、コマンドラインエディターを使用する場合はSudo
を使用し、GUIエディターを使用する場合はgksu
を使用します。
Sudo vi /etc/ssh/sshd_config
次の行を追加します
PrintMotd no
PrintLastLog no
次の関数を上部の$HOME/.bashrc
ファイルに配置できます
function ssh_login_date
{
if [ ! -z "$SSH_CLIENT" ]; then
printf "Last login %s from %s \n" "$( date +%F" "%H":"%M":"%S )" "$(echo $SSH_CLIENT| awk '{print $1}' )"
fi
}
そして、ファイルの最後にある関数を呼び出します
ssh_login_date