Красочный ssh баннер

Нет. В тех редких случаях, где экран в экране или tmux в tmux полезен, обе программы обеспечивают простое средство передачи контроля к вложенному экземпляру.

Экран предлагает возможности последовательной консоли, но я просто использую специализированное приложение (miniterm.py распределенный с Python), когда мне нужно это. Иначе я ни о чем не могу думать бесцеремонно, что любой может сделать, и другой не может, но можно было бы сделать это более простой, чем другой.

Я учился бы один или другой, и если Вы любопытны или неудовлетворены тем, что Вы выбрали, попробуйте другой. Я предпочитаю tmux, лично.

6
12.01.2014, 23:46
2 ответа

Вы могли бы хотеть взглянуть на toilet. Следующее было включено в баннер одного из серверов в моей лаборатории:

enter image description here

Можно установить его в базирующихся системах Debian с

sudo apt-get install toilet

Туалет печатает текст с помощью крупных символов, сделанных из меньших символов. Это подобно во многих отношениях FIGlet с дополнительными функциями, такими как обработка Unicode, цветные шрифты, фильтры и различные форматы экспорта.

toilet работы отлично с ASCII-творчеством:

enter image description here


Я записал немного сценария Perl для выделения определенного regexes в тексте. Если Вы используете . как regex, это окрасит все в определенный цвет:

enter image description here

Сценарий (использование -h для крошечного сообщения справки):

#!/usr/bin/env perl
use Getopt::Std;
use strict;
use Term::ANSIColor; 

my %opts;
getopts('hic:l:',\%opts);
    if ($opts{h}){
    print "Use -l to specify the letter(s) to highlight. To specify more than one patern use commas.\n -i makes the search case sensitive\n -c: comma separated list of colors\n";
    exit;
    }
my $case_sensitive=$opts{i}||undef;
my @color=("bold blue",'bold red', 'bold yellow', 'bold green', 'bold magenta', 'bold cyan', 'yellow on_magenta', 'bright_white on_red', 'bright_yellow on_red', 'white on_black');
if ($opts{c}) {
   @color=split(/,/,$opts{c});
}
my @patterns;
if($opts{l}){
     @patterns=split(/,/,$opts{l});
}
else{
    $patterns[0]='\*';
}
# Setting $| to non-zero forces a flush right away and after 
# every write or print on the currently selected output channel. 
$|=1;

while (my $line=<>) 
{ 
    for (my $c=0; $c<=$#patterns; $c++){
      if($case_sensitive){
        if($line=~/$patterns[$c]/){
        $line=~s/($patterns[$c])/color("$color[$c]").$1.color("reset")/ge; 
        }
      }
      else{
        if($line=~/$patterns[$c]/i){
          $line=~s/($patterns[$c])/color("$color[$c]").$1.color("reset")/ige; 
        }
      }
    }
    print STDOUT $line;
}
9
27.01.2020, 20:23
  • 1
    Это - то, как генерировать баннер, не, как отобразиться, он через ASCII только фильтрует. –  hildred 13.07.2015, 07:23
  • 2
    @terdon - не стесняются перемещать это в этот Q: unix.stackexchange.com/questions/215578 / …. –  slm♦ 13.07.2015, 07:52
  • 3
    @slm у меня не будет достаточного доступа к моей машине в течение следующих нескольких дней, таким образом, я не смогу проверить. Вы говорите, что помещение вывода туалета в etc/motd не будет работать? –  terdon♦ 13.07.2015, 14:51
  • 4
    @terdon - Нет это работает на motd. hildred, поднял тот наш A'ers, не будет работать с функцией баннера SSH, учитывая мой ответ на этот Q: unix.stackexchange.com/questions/109038 / …. Управляющие коды запрещены в баннере SSH. Таким образом, я сделал Q для покрытия окраски MOTD's и переместил мой A'er туда. Я полагал, что Вы захотите сделать то же, w/Ваш. идентификатор сообщения –  slm♦ 13.07.2015, 15:10

На основании моего исследования в других вопросах и ответах U&L под названием Печатные символы, отличные от ASCII, в баннере sshd невозможно получить SSH средство баннеров для печати управляющих последовательностей, необходимых для раскрашивания вывода.На самом деле это сделано специально из соображений безопасности.

Следовательно, невозможно напечатать баннер SSH таким способом.

4
27.01.2020, 20:23

Теги

Похожие вопросы