web-dev-qa-db-ja.com

MOTDが表示される前にSSHログインの「画面をクリア」

MOTDが表示される前に画面の内容をクリアして、サーバーにSSHで接続したときに、ローカルマシンで実行されていた以前のコマンドではなく、MOTDヘッダーが画面の上部に表示されるようにします。

clear.bashrcに追加しようとしましたが、MOTDもクリアされます。

例:「WelcometoUbuntu ...」より上のすべてをクリアします。

Screenshot

質問: MOTDメッセージが表示される前にすべてのコンテンツを削除するにはどうすればよいですか?

4
Jordan Davis

MOTDは、ログイン直後に、最新のLinuxディストリビューションのpam認証モジュールによって表示されます。その前にユーザースクリプトは実行されません。

Motdファイルを変更するだけで、ターミナルエスケープシーケンスを介して画面をクリアできます。 <esc> [2J <esc> [; Hは画面をクリアし、ジャンプアップします。 motdファイルをvimで開き、i(挿入モード)を押し、ctrl + vを押し、escボタンを押します。 ^ [が表示されます。アスキー27エスケープ文字を入力しました。 [2J、ctrl-v esc、もう一度[; H。次に、escを押し(ctrl-vなし、これはviの挿入モードをエスケープするため)、Shift + Zを2回押します。

画面はすべてのvt100互換端末でクリアされます。

もう1つのオプションは、pamでmotdを無効にすることです。 /etc/pam.dディレクトリでpam_motd.soを検索します:grep pam_motd/etc/pam.d/*。おそらくあなたは次のようなものを見つけるでしょう

 session    optional   pam_motd.so

#でコメントアウトします。独自のmotdを実装します(選択したinitスクリプトで/ etc/motdファイルをcatします)。もちろん今、あなたは猫の前にクリアすることができます。

1
goteguru

~/.ssh/configファイルを編集(または作成)して、行を追加します

PermitLocalCommand yes
LocalCommand /usr/bin/clear

上部近く。これは、サーバーへの接続が成功した後、クライアント(つまりローカルマシン)でclearを実行します。

2
jjlin