Linux: смена языка и кодировки системы

Раскладка клавиатуры для консоли

OpenRC

Раскладка клавиатуры, используемая консолью, устанавливается в файле /etc/conf.d/keymaps с помощью переменной keymap. Допустимые значения можно найти в каталоге /usr/share/keymaps/YOUR_ARCH/. Каталог архитектуры i386 содержит подкаталоги, соответствующие различным раскладкам (qwerty/, azerty/ и так далее). У некоторых языков есть несколько вариантов — поэкспериментируйте с ними, чтобы определить более подходящий.

Файл Установка раскладки клавиатуры для консоли

keymap="de"
#keymap="de-latin1"
#keymap="de-latin1-nodeadkeys"

systemd

В systemd раскладка для консоли может быть установлена с помощью команды localectl. Сперва проверьте доступные раскладки:

Далее установите необходимую раскладку для консоли:

В конце проверьте, что раскладка для консоли была установлена правильно:

       VC Keymap: it

Примечание 3 (настройка мс)

Яркие синие цвета в mc некоторым уже могли надоесть. Чтобы изменить цвета нужно закрыть mc (чтобы настройка не затёрлась самим мс ). Папка .mc создаётся в домашней директории вашего пользователя при первом запуске mc.

sed -i 's/^base_color=.*/base_color=normal=cyan,default::selected=black,cyan:directory=cyan,default:marked=brightgreen,default:errors=red,default:marked=yellow,default:executable=brightred,default:marked=brightgreen,default:link=grey,default:marked=brightgreen,default:device=brightmagenta,default:marked=brightgreen,default:menuhot=black,cyan:menusel=cyan,black:menuhotsel=gray,black:menu=black,cyan:helpnormal=cyan,black:editnormal=cyan,black:editbold=yellow,black:editmarked=cyan,black/; s/^confirm_delete=1*/confirm_delete=0/; s/^confirm_exit=1.*/confirm_exit=0/' /root/.mc/ini

2. Check which system locales are enabled

By using the command you can see which locales are currently being used for your active terminal session. In the output above the system locale is set to .

Before setting up a different system locale you can first check which locales are enabled and ready to use on your Debian 9 VPS. You can use the following command for that purpose:

locale -a

The output should be similar to the one below:

# locale -a
C
C.UTF-8
POSIX
en_US.utf8

3.  Generate a system locale for the region you need

If you don’t have the locale that you need to be enabled on your system, it can simply be generated by using the command. Just run the following command to generate a locale for the region you need:

dpkg-reconfigure locales

Select the locale that you want to be enabled and press . On the image below you can see that we selected .

debian set locale

Once you press you should see the following output:

Generating locales (this might take a while)...
  en_GB.UTF-8... done
  en_US.UTF-8... done
Generation complete.

Red Hat / CentOS

Включение системных средств локализации в Red Hat Linux (а, следовательно, и в других дистрибутивах, основанных на Red Hat) осуществляется из файла /etc/profile.d/lang.sh.
Как известно, при старте любого shell-а сначала выполняется /etc/profile. В Red Hat в /etc/profile прописаны команды, благодаря которым на исполнение вызываются также все файлы /etc/profile.d/*.sh

Значения переменных локализации в файлах lang.sh задаются путем вызова на выполнение файла /etc/sysconfig/i18n.

# nano /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"

Правда, это верно только для случая, когда вы имеете права суперпользователя root. Но даже если вы простой пользователь Linux-системы и не можете редактировать файл /etc/sysconfig/i18n, то вы все же можете включить локализацию для себя, но несколько иным способом. А именно, поместите в свой файл $HOME/.profile (или в любой файл, который исполняется в процессе логирования пользователя: $HOME/.Xclients, $HOME/.xinitrc или другой) следующие строки: /etc/profile или $HOME/.bash_profile

#export LANG=ru_UA.utf8
#export LINGUAS=ru_RU:en
#export LC_ALL="ru_UA.utf8"
export LANG="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"

Чтобы изменения принялись нужно перезайти в консоль или выполнить команду source для файла в котором вы прописали export

$ source ~.profile

Risoluzione dei problemi

Il mio terminale non supporta UTF-8

Sfortunatamente alcuni terminali non supportano UTF-8. In questo caso dovreste utilizzare un terminale differente. Questa è una lista di alcuni terminali che hanno il supporto per UTF-8:

  • vte-based terminals
  • gnustep-terminal
  • konsole
  • mlterm
  • rxvt-unicode
  • xterm

Gnome-terminal o rxvt-unicode non supportano UTF-8

È necessario avviare queste applicazioni da un locale UTF-8 o cadrà il supporto ad UTF-8. Abilitare il locale (o il vostro locale UTF-8 alternativo) come spiegato precedentemente e impostarlo come la lingua predefinita, quindi riavviare.

Navigation menu

Our experts are sharingtheir knowledge with you.

Categories

▼ Server Hardware

► Hard Disk Drives

no subcategories

► HBAs

no subcategories

► Intel

no subcategories

▼ Modular Server

► Modular Server Ethernet Switch

no subcategories

▼ Motherboards

► BIOS Settings

no subcategories

▼ RAID Controllers

► 3ware

no subcategories

▼ Adaptec

► Adaptec SmartRAID

no subcategories

► LSI

no subcategories

▼ Server

► Backplanes

no subcategories

► LES

no subcategories

▼ SSDs

► Intel SSDs

no subcategories

▼ Server Software

▼ Linux

► Debian

no subcategories

► Linux Basics

no subcategories

► Linux Networking

no subcategories

▼ Linux Performance

► Fio

no subcategories

► TKperf

no subcategories

► Linux Software RAID

no subcategories

▼ Linux-Storage

► LVM

no subcategories

► Smartmontools

no subcategories

► Ubuntu

no subcategories

▼ Windows

► Windows Server 2012

no subcategories

► Windows Server 2016

no subcategories

► Windows Server 2019

no subcategories

▼ Storage

► FreeNAS

no subcategories

▼ Virtualization

► Hyper-V

no subcategories

► Proxmox

no subcategories

► VirtualBox

no subcategories

▼ VMware

▼ VMware

▼ VMware

► VMware

► VMware vSphere 5

► VMware vSphere 5.1

► VMware vSphere 5.5

► VMware vSphere 6.0

► VMware vSphere 6.5

► VMware vSphere 6.7

► VMware vSphere 5

no subcategories

► VMware vSphere 5.1

no subcategories

► VMware vSphere 5.5

no subcategories

► VMware vSphere 6.0

no subcategories

► VMware vSphere 6.5

no subcategories

► VMware vSphere 6.7

no subcategories

► VMware vSphere 5

no subcategories

► VMware vSphere 5.1

no subcategories

► VMware vSphere 5.5

no subcategories

► VMware vSphere 6.0

no subcategories

► VMware vSphere 6.5

no subcategories

► VMware vSphere 6.7

no subcategories

▼ Focus Topics

► Git

no subcategories

► UEFI

no subcategories

▼ Network+Accessories

► Load Balancer

no subcategories

► Monitoring

no subcategories

▼ OPNsense

► OPNsense Business Edition

no subcategories

▼ Remote Management

► IPMI

no subcategories

► TKmon

no subcategories

▼ Archive

► AMD

no subcategories

► Areca

no subcategories

► Fusion-io

no subcategories

► News

no subcategories

► Server Hardware Archive

no subcategories

► STEC

no subcategories

Configuración del locale de todo el sistema

Para definir la configuración regional de todo el sistema, establezca la variable en .

El contenido de es una lista de líneas separadas que definen las variables del entorno: además de , es compatible con todas las variables , con excepción de .

Nota: El archivo no existe por defecto, hay que crearlo manualmente.

Sugerencia: Si la salida de durante la instalación es de su agrado, puede guardarla haciendo: mientras se encuentra en el entorno chroot.

/etc/locale.conf
LANG="es_ES.UTF-8"

He aquí un ejemplo de configuración avanzada:

/etc/locale.conf
# Habilitar UTF-8 con valores españoles.
LANG="es_ES.UTF-8"

# Mantener el orden predeterminado (por ejemplo, los archivos que comienzan con un '.' (punto)
# se mostrarán al principio en un listado del contenido del directorio).
LC_COLLATE="C"

# Establecer la fecha al formato DD-MM-YYYY  (comprobación con «date +%c»)
LC_TIME="es_ES.UTF-8"

Puede establecer la configuración regional («locale») por defecto en o bien usando , por ejemplo:

# localectl set-locale LANG="es_ES.UTF-8"

Consulte y para más detalles.

La configuración regional de todo el sistema estará completamente actualizada después de reiniciar y quedará establecida para las sesiones individuales iniciadas.

5. Changing your locale manually

Editing the locale file is very easy. You can use your favorite text editor to edit the  file. If this file does not exist, then no locale is currently set for your system. You can create one manually and enable a locale for your system. The output below shows how the file should look like:

cat /etc/default/locale
#  File generated by update-locale
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8

Replace with the locale you wish to have active on your system and save the file. Once you save the file, log out from your current session and then log back in, or open a new terminal, and your newly chosen locale will be active.

NOTE: This example file only sets the variable for your system, which covers the locale for all parts of the system.

Impostare il locale a livello di sistema

Per definire il locale a livello di sistema utilizzato sul sistema, impostare la variabile in :

contiene un elenco per l’assegnazione delle variabile di ambiente in una nuova linea separata: oltre , supporta tutte le variabili , con l’eccezione di .

Nota: non esiste per impostazione predefinita e va creato manualmente.

Suggerimento: Se l’output del locale è di vostro gradimento durante l’installazione, è possibile salvare un po ‘di tempo eseguendo : mentre si è ancora in ambiente chroot.

/etc/locale.conf
LANG="it_IT.UTF-8"

Ecco un esempio di configurazione avanzata:

/etc/locale.conf
# Abilitare UTF-8 con impostazioni Italiane.
LANG="it_IT.UTF-8"

# Mantenere l'ordine predefinito (ad esempio i file che iniziano con un '.' 
# dovrebbe apparire all'inizio di un elenco di directory).
LC_COLLATE="C"

# Impostare la data (test con "date +%c")
LC_TIME="it_IT.UTF-8"

È possibile impostare la lingua di default in anche usando , per esempio:

# localectl set-locale LANG="it_IT.UTF8"

Si veda e per maggiori dettagli.

Queste modifiche avranno effetto dopo il riavvio del sistema e sarà impostato per le singole sessioni di login .

Локали в Windows

Для того, чтобы узнать, какие локали доступны в Windows, нужно зайти в панель управления, «Язык и региональные стандарты».

На вкладке «Дополнительно», в разделе «Кодовые страницы таблиц преобразования» показан список всех возможных локалей для Windows, которые можно использовать в PHP.

Кодовые страницы, которые отмечены в списке, из PHP могут быть использованы по их номеру.

В общем случае, использование выглядит по следующей схеме:

Для России это может выглядеть как (cp1251) или (KOI8-R).

Для Украины — (cp1251).

Вместо длинных названий можно использовать сокращённые , , и так далее. При этом кодовая страница выставится с учётом региональных настроек, для России и Украины — 1251, для Америки — 1252.

Единственная кодировка, с которой у меня возникли проблемы, как ни странно, оказалась UTF-8. При попытке выставить эту кодировку, выставляются все категории локалей, кроме основной. Вывод локализованных сообщений при этом идёт в cp1251.

Пример - установка локали UTF-8 на Windows
<?
// Кодировка страницы windows-1251
header('Content-Type: text/html; charset=utf-8');

echo '<pre>';

// Локаль устанавливаем UTF-8
echo setlocale(LC_ALL, 'Russian_Russia.65001'), PHP_EOL;

// Но данные будут выводиться всё равно в cp1251 :(((
echo strftime('%A'), PHP_EOL;

?>
LC_COLLATE=Russian_Russia.65001;LC_CTYPE=Russian_Russia.1251;
LC_MONETARY=Russian_Russia.65001;LC_NUMERIC=Russian_Russia.65001;
LC_TIME=Russian_Russia.65001
пятница

Пока это можно списать на внутренний механизм PHP работы со строками. С шестой версии PHP вся обработка строк должна будет вестись в UTF-8, но до тех пор надо просто знать об этом и делать поправку.

Ещё одной странностью при работе с локалями в PHP на Windows является неправильная работа с категориями локалей. Так, например, я выставляю локаль на функции времени KOI8-R, , но почему-то выставляется cp1251 на все категории. Суть проблемы я так и не понял, возможно, это просто баг (проверялось на PHP 5.2.3), а возможно, что внутренний механизм Windows просто не позволяет этого делать. Хотя по мне, так это чистой воды баг.

В общем-то, на этом можно и закончить разговор о локалях на Windows. Главное, запомнить, что локали, которые портированы из UNIX, под WIndows работают только для «галочки». Шаг влево, шаг вправо и результат будет непредсказуемым. Безопасно можно использовать только cp1251 (windows-1251) и KOI8-R, и только для .

Код — установка локали на Windows
<?php // Устновка локалей для Windows

// Кодировка Windows-1251
setlocale(LC_ALL, ‘Russian_Russia.1251’);

// Кодировка KOI8-R
setlocale(LC_ALL, ‘Russian_Russia.20866’);

// Кодировка UTF-8 (использовать осторожно)
setlocale(LC_ALL, ‘Russian_Russia.65001’);

?>

Navigation menu

Our experts are sharingtheir knowledge with you.

Categories

▼ Server Hardware

► Hard Disk Drives

no subcategories

► HBAs

no subcategories

► Intel

no subcategories

▼ Modular Server

► Modular Server Ethernet Switch

no subcategories

▼ Motherboards

► BIOS Settings

no subcategories

▼ RAID Controllers

► 3ware

no subcategories

▼ Adaptec

► Adaptec SmartRAID

no subcategories

► LSI

no subcategories

▼ Server

► Backplanes

no subcategories

► LES

no subcategories

▼ SSDs

► Intel SSDs

no subcategories

▼ Server Software

▼ Linux

► Debian

no subcategories

► Linux Basics

no subcategories

► Linux Networking

no subcategories

▼ Linux Performance

► Fio

no subcategories

► TKperf

no subcategories

► Linux Software RAID

no subcategories

▼ Linux-Storage

► LVM

no subcategories

► Smartmontools

no subcategories

► Ubuntu

no subcategories

▼ Windows

► Windows Server 2012

no subcategories

► Windows Server 2016

no subcategories

► Windows Server 2019

no subcategories

▼ Storage

► FreeNAS

no subcategories

▼ Virtualization

► Hyper-V

no subcategories

► Proxmox

no subcategories

► VirtualBox

no subcategories

▼ VMware

▼ VMware

▼ VMware

► VMware

► VMware vSphere 5

► VMware vSphere 5.1

► VMware vSphere 5.5

► VMware vSphere 6.0

► VMware vSphere 6.5

► VMware vSphere 6.7

► VMware vSphere 5

no subcategories

► VMware vSphere 5.1

no subcategories

► VMware vSphere 5.5

no subcategories

► VMware vSphere 6.0

no subcategories

► VMware vSphere 6.5

no subcategories

► VMware vSphere 6.7

no subcategories

► VMware vSphere 5

no subcategories

► VMware vSphere 5.1

no subcategories

► VMware vSphere 5.5

no subcategories

► VMware vSphere 6.0

no subcategories

► VMware vSphere 6.5

no subcategories

► VMware vSphere 6.7

no subcategories

▼ Focus Topics

► Git

no subcategories

► UEFI

no subcategories

▼ Network+Accessories

► Load Balancer

no subcategories

► Monitoring

no subcategories

▼ OPNsense

► OPNsense Business Edition

no subcategories

▼ Remote Management

► IPMI

no subcategories

► TKmon

no subcategories

▼ Archive

► AMD

no subcategories

► Areca

no subcategories

► Fusion-io

no subcategories

► News

no subcategories

► Server Hardware Archive

no subcategories

► STEC

no subcategories

Impostare il collation

L’ordinamento (collation), è un po ‘diverso. L’ordinamento è una stupida bestia poiché i vari locale si comportano in modo diverso. Per ovviare a potenziali problemi, Arch utilizza impostare in . Tuttavia, questo metodo è obsoleto. Per abilitare questo comportamento, è sufficiente aggiungere la seguente variabile in :

LC_COLLATE="C"

Ora il comando ordinerà i dotfile per primi, seguito da nomi di file che iniziano con maiuscole e minuscole. Si noti che senza una opzione , le applicazioni ripiegano sul valore di locale specificato da o , ma l’impostazione di verranno sovrascritti se è impostato. Se ciò crea dei problemi, assicurarsi che LC_ALL non sia impostato aggiungendo quanto segue in  :

 export LC_ALL=

Si noti che LC_ALL è l’unica variabile LC che non deve essere impostata in .

Установка локали

Чтобы отобразить текущую локаль и связанные с ней переменные окружения, наберите:

$ locale

Используемая локаль, выбранная среди сгенерированных в системе, устанавливается в файлах , каждый из которых должен содержать список переменных окружения, например:

locale.conf
LANG=en_AU.UTF-8
LC_COLLATE=C
LC_TIME=en_DK.UTF-8

Системная локаль устанавливается в файле /etc/locale.conf. Вы можете установить ее также при помощи localectl:

# localectl set-locale LANG=en_US.UTF-8
Подробнее смотрите на man-странице .
Совет: Во время установки системы, если вас устраивает вывод команды locale, вы можете просто сохранить его в файл командой (в сеансе arch-chroot).

Системная локаль может переопределяться в каждом пользовательском сеансе с помощью файла ~/.config/locale.conf (или, в общем случае, $XDG_CONFIG_HOME/locale.conf либо $HOME/.config/locale.conf).

Совет:

  • Это позволяет вести системные логи в на английском, при использовании местного языке в рабочей среде пользователя.
  • Вы можете создать файл , тогда для всех новых пользователей, добавленных командой useradd с опцией сразу будет автоматически сгенерирован файл .

Приоритет файлов определяется в .

Смотрите , man-страницу и связанные страницы для получения подробной информации.

После внесения изменений в файлы , они вступят в силу после перезагрузки системы, и для отдельных сеансов пользователей — при входе. Чтобы принудительно обновить локаль в текущем окружении без перезагрузки, выполните:

$ source /etc/profile.d/locale.sh

Добавить новую локаль

Смотрим список всех поддерживаемых (доступных для установки) локалей:

$ cat /etc/locale.gen
# This file lists locales that you wish to have built. You can find a list
# of valid supported locales at /usr/share/i18n/SUPPORTED, and you can add
# user defined locales to /usr/local/share/i18n/SUPPORTED. If you change
# this file, you need to rerun locale-gen.

# aa_DJ ISO-8859-1
# aa_DJ.UTF-8 UTF-8
# ..........
# en_US.ISO-8859-15 ISO-8859-15
# en_US.UTF-8 UTF-8
# en_ZA ISO-8859-1
# ..........
# ru_RU.KOI8-R KOI8-R
# ru_RU.UTF-8 UTF-8
# ru_UA KOI8-U
# ..........
# zu_ZA ISO-8859-1
# zu_ZA.UTF-8 UTF-8

Устанавливаем нужные локали — и :

$ sudo locale-gen en_US.UTF-8 ru_RU.UTF-8
Generating locales (this might take a while)...
  en_US.UTF-8... done
  ru_RU.UTF-8... done
Generation complete.

Второй способ установить локали — расскомментровать нужные строки в файле

# This file lists locales that you wish to have built. You can find a list
# of valid supported locales at /usr/share/i18n/SUPPORTED, and you can add
# user defined locales to /usr/local/share/i18n/SUPPORTED. If you change
# this file, you need to rerun locale-gen.

# aa_DJ ISO-8859-1
# aa_DJ.UTF-8 UTF-8
# ..........
# en_US.ISO-8859-15 ISO-8859-15
en_US.UTF-8 UTF-8
# en_ZA ISO-8859-1
# ..........
# ru_RU.KOI8-R KOI8-R
ru_RU.UTF-8 UTF-8
# ru_UA KOI8-U
# ..........
# zu_ZA ISO-8859-1
# zu_ZA.UTF-8 UTF-8

И просто выполнить команду без указания локалей:

$ sudo locale-gen

Сетевые настройки

Базовая настройка

Этот метод настройки является самым гибким и функциональным, но требует ручной правки конфигурационных файлов.

Если Debian устанавливался по сети, то настройки будут перенесены из установщика в установленную систему, т.е. ничего настраивать уже не нужно.

Ищем нашу сетевую карту в списке:

# ifconfig -a

Для более детальной информации о сетевых картах можно воспользоваться специальными

Открываем файл конфигурации сети:

# nano /etc/network/interfaces

Строки, начинающиеся со слова «auto», используются для идентификации физических интерфейсов при их подьеме во время запуска ifup с опцией -a. (Эта опция используется сценариями загрузки системы.) Имена физических интерфейсов должны следовать за словом «auto» в той же строке. Может быть несколько строф «auto». ifup поднимет названные интерфейсы в порядке их перечисления.

Строки, начинающиеся с «allow-«, используются для идентификации интерфейсов, которые должны быть подняты автоматически различными подсистемами. Это может быть сделано, например, с использованием команды «ifup —allow=hotplug eth0 eth1», которая будет поднимать только eth0 или eth1, если они перечислены в строке «allow-hotplug». Учтите, что «allow-auto» и «auto» — синонимы.

Если настройки статические, тогда, к примеру, заполняем так:

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static
           address 192.168.1.94
           network 192.168.1.0
           netmask 255.255.255.0
           broadcast 192.168.1.255
           gateway 192.168.1.1

Если настройки сети раздаются через DHCP, тогда, к примеру, заполняем по-другому:

auto eth0
allow-hotplug eth0
iface eth0 inet dhcp 

Если необходимо использовать одновременно несколько IP адресов на одной сетевой карте, тогда, к примеру, добавляем строки:

auto eth0:1
iface eth0:1 inet static
           address 192.168.0.94
           network 192.168.0.0
           netmask 255.255.255.0
           broadcast 192.168.0.255

Для настройки DNS нужно редактировать файл /etc/resolv.conf

Статичный DNS, например:

nameserver 10.30.1.11 212.45.2.5
search gspk
domain bober.gspk

Динамический DNS по DHCP вносится в /etc/resolv.conf автоматически.

Настройка в консольном интерфейсе wicd-curses

wicd — cлужба управления проводными и беспроводными сетями для Linux с Qt, GTK+ и curses интерфейсами. Эта служба наиболее удобна, если часто возникает необходимость в быстром подключении к различным сетям.

После первого запуска wicd автоматические переключает все настройки сети на DHCP.

Для управления службой в консоли необходим curses клиент wicd-curses.

# aptitude install wicd-curses

Запускам настройку:

# wicd-curses

Для применения настроек необходимо нажать «Shift+C»

Локаль Системы По Умолчанию

Дельный Совет: Создайте потрясающий ASCII баннер из командной строки в Linux и вставьте его в предупреждающее сообщение, которое будет появляться при подключении по SSH! Читать далее →

Выполните следующие действия для смены системной локали по умолчанию (для всех пользователей).

Поддерживаемые релизы: Ubuntu-15.04, 15.10, 16.04, 16.10, 18.04.

Ubuntu-14.04

Поддерживаемые релизы: Ubuntu-9.10, 10.04, 10.10, 11.04, 11.10, 12.04, 12.10, 13.04, 13.10, 14.04, 14.10.

Откройте файл с настройками локали по умолчанию:

/etc/default/locale

Переопределите значение переменной :

LANG="en_US.utf8"

CentOS-6

Откройте файл с настройками локали по умолчанию:

/etc/sysconfig/i18n

Переопределите значение переменной :

LANG="en_US.utf8"

Необходима перезагрузка: Изменения системных настроек вступит в силу только после перезагрузки.

Удаленный доступ к консоли

Устанавливаем ssh: — комплекс программ, позволяющих соединяться с удалёнными машинами по защищённому каналу и выполнять команды в консоли:

# aptitude install ssh

Этот метапакет содержит программу клиента ssh и службу sshd, обрабатывающую входящие ssh подключения к вашему компьютеру.

Авторизация по ключам

Генерация ключей

Вариaнт 1 (подходит для putty и native ssh клиентов Linux)

Выбираем пользователя на сервере под которым будем логиниться в ssh. Например это будет «user». Входим с его правами в консоль. Далее генерируем ключи, при желании указываем пароль на создаваемый ключ.

ssh-keygen -t rsa -b 2048 -C "комментрий к ключу" -f /user/.ssh/newserver.key

В итоге получаем в «/user/.ssh/» два файла «newserver.key» и «newserver.key.pub»

Вариaнт 2 (для всех + проприетарный Bitvise Tunnelier)

К сожалению, я не нашёл способа сконвертировать OpenSSH ключи в понятный Tunnelier-у формат. Поэтому действовать будем от обратного.

На Windows машине запускаем Bitvise Tunnelier. На вклaдке «Login» выбираем раздел «Authentickation» —> «Use keypair manager». В новом окне жмём «Generate New …», выставляем опции на свой вкус —> «Generate». Далее выбираем «Export» и сохраняем любым удобным способом публичный ключ в формате OpenSSH в файл /user/.ssh/newserver.key.pub на ssh сервере.

Для использования в других ssh клиентах аналогично экспортируем и закрытый ключ. В итоге получаем в «/user/.ssh/» два файла «newserver.key» и «newserver.key.pub»

Настройка сервера

Перемещаем открытый ключ в список разрешённых ключей Например так

mv /user/.ssh/newserver.key.pub /user/.ssh/authorized_keys

Правим конфигурацию сервера

nano /etc/ssh/sshd_config

# Разрешаем авторизацию по парам ключей
PubkeyAuthentication yes
# Путь к списку отпечатков открытых ключей
AuthorizedKeysFile      %h/.ssh/authorized_keys

Проверяем права доступа, должно быть так

root@gtw:~# ls -g .ssh
итого 4
-rw------- 1 root 392 Мар 24 20:03 authorized_keys

Если права доступа отличаются, то выставляем правильные:

chmod 600 -R .ssh && chown root:root .ssh/authorized_keys

Перезапускаем сервер

/etc/init.d/ssh restart

При появлении проблем доступа смотрим лог

cat /var/log/auth.log | tail

Настройка клиента

Выбираем пользователя на клиенте под которым будем логиниться в ssh. Например это будет «user». Логинимся по юзером. Любым удобным способом копируем сгенерированный ранее файл newserver.key в папку /home/user/.ssh. Если хочется, чтобы ssh клиент подхватывал ключ автоматически, сохраняем ключ с новыми именем «id_dsa»

Выставляем права доступа, иначе ssh клиент проигнорирует ключ.

cd /home/user
chmod 700 ./.ssh
chmod 600 ./.ssh/newserver.key

Запускаем ssh клиента.

ssh -i /home/user/.ssh/newserver.key user@192.168.0.1

Всё должно работать.

Настройка Putty

К сожалению, Putty не понимает ключи в формате OpenSSH. Поэтому загружаем latest development snapshot Puttygen. Обычный Puttygen нам не подойдёт.

Скармливаем проге наш newserver.key (Conversions —> Import key), если нужно вводим пароль для доступа ключу. Получаем окно

Если надо меняем комментарий и пароль доступа к ключу. В разделе «Parameters» рекомендую выбрать SSH-2 RSA и 2048 bits. Далее жмём «Save private key» и получаем ключ в формате ppk, пригодный для скармливания обычному Putty в разделе Сonnection —> SSH —> Auth

Усиленные настройки безопасности

Рекомендую следующие настройки

nano /etc/ssh/sshd_config

#Запрещаем вход под root
PermitRootLogin no
# Меняем порт по умолчанию - может помочь против поверхностного сканирования портов
Port 17854
# Указываем на каком IP слушать порт
ListenAddress 192.168.0.1
# Запрещаем вход по паролям, усложняет брутфорс
PasswordAuthentication no
# Запрещаем пустые пароли
PermitEmptyPasswords no
# Только root может авторизоваться по ssh
AllowUsers root
# Меняем стандартный порт, но мне больше нравится реализовывать это через port mapping
# Port 4422

Warning Message

The warning message during the installation of Perl applications will appear as follows:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "en_US.utf8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

This problem may arise when packages are being added. The following example will show a corresponding output:

8000050000:~# apt-get install multipath-tools
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  dmsetup kpartx libaio1
Suggested packages:
  multipath-tools-boot
The following NEW packages will be installed:
  dmsetup kpartx libaio1 multipath-tools
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 266kB of archives.
After this operation, 950kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://ftp.de.debian.org lenny/main dmsetup 2:1.02.27-4 
Get:2 http://ftp.de.debian.org lenny/main kpartx 0.4.8-14+lenny2 
Get:3 http://ftp.de.debian.org lenny/main libaio1 0.3.107-3 
Get:4 http://ftp.de.debian.org lenny/main multipath-tools 0.4.8-14+lenny2 
Fetched 266kB in 1s (154kB/s)           
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "en_US.utf8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
Selecting previously deselected package dmsetup.
(Reading database ... 27499 files and directories currently installed.)
Unpacking dmsetup (from .../dmsetup_2%3a1.02.27-4_amd64.deb) ...
Selecting previously deselected package kpartx.
Unpacking kpartx (from .../kpartx_0.4.8-14+lenny2_amd64.deb) ...
Selecting previously deselected package libaio1.
Unpacking libaio1 (from .../libaio1_0.3.107-3_amd64.deb) ...
Selecting previously deselected package multipath-tools.
Unpacking multipath-tools (from .../multipath-tools_0.4.8-14+lenny2_amd64.deb) ...
Processing triggers for man-db ...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "en_US.utf8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
/usr/bin/mandb: can't set the locale; make sure $LC_* and $LANG are correct
manconv: can't set the locale; make sure $LC_* and $LANG are correct
manconv: can't set the locale; make sure $LC_* and $LANG are correct
manconv: can't set the locale; make sure $LC_* and $LANG are correct
manconv: can't set the locale; make sure $LC_* and $LANG are correct
manconv: can't set the locale; make sure $LC_* and $LANG are correct
manconv: can't set the locale; make sure $LC_* and $LANG are correct
manconv: can't set the locale; make sure $LC_* and $LANG are correct
manconv: can't set the locale; make sure $LC_* and $LANG are correct
manconv: can't set the locale; make sure $LC_* and $LANG are correct
manconv: can't set the locale; make sure $LC_* and $LANG are correct
manconv: can't set the locale; make sure $LC_* and $LANG are correct
Setting up dmsetup (2:1.02.27-4) ...
Setting up kpartx (0.4.8-14+lenny2) ...
Setting up libaio1 (0.3.107-3) ...
Setting up multipath-tools (0.4.8-14+lenny2) ...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "en_US.utf8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Starting multipath daemon: multipathd.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = "en_US.utf8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
8000050000:~# 

Solución de problemas

Mi terminal no es compatible con UTF-8

Desafortunadamente, algunos terminales no son compatibles con UTF-8. En este caso, usted tiene que utilizar un terminal diferente. Aquí tiene una lista con algunos terminales que tienen soporte para UTF-8:

  • vte-based terminals
  • gnustep-terminal
  • konsole
  • mlterm
  • rxvt-unicode
  • xterm

Gnome-terminal o rxvt-unicode no es compatible con UTF-8

Es necesario poner en marcha estas aplicaciones desde una localización UTF-8 o caerá el soporte UTF-8. Activar el locale (o su locale UTF-8 alternativo) como se explicó anteriormente, y establézcalo como el idioma por defecto, reiniciando, a continuación, el sistema.

Set Default System Locale

Cool Tip: Create the awesome ASCII banners from the Linux command line and decorate your SSH warning messages! Read more →

Perform the following steps to permanently change the system locale (for the all users).

Supported releases: Ubuntu-15.04, 15.10, 16.04, 16.10, 18.04.

Ubuntu-14.04

Supported releases: Ubuntu-9.10, 10.04, 10.10, 11.04, 11.10, 12.04, 12.10, 13.04, 13.10, 14.04, 14.10.

Edit the file with default locale settings:

/etc/default/locale

Set the variable:

LANG="en_US.utf8"

CentOS-6

Edit the file with default locale settings:

/etc/sysconfig/i18n

Set the variable:

LANG="en_US.utf8"

Reboot is required: Note that the above settings will take effect after reboot only.

Сессии в консоли

Screen

Устанавливаем screen: — утилиту-мультиплексор, предоставляющую пользователю доступ к нескольким консолям в рамках одной сессии.:

# aptitude install screen

Далее настраиваем:

nano /etc/screenrc

# Отключаем приветствие
startup_message off
# Производить отключение сессии при разрыве связи с терминалом
autodetach on
# Включаем строку состояния
hardstatus on
# Параметры строки состояния
hardstatus alwayslastline "%{+b wk} %c $LOGNAME@%H %= "

или одной командой:

sed -i 's/^#startup_message.*/startup_message off/; s/^#autodetach.*/autodetach on/; s/^hardstatus off.*/hardstatus on/; s/^hardstatus string.*/hardstatus alwayslastline "%{+b wk} %c $LOGNAME@%H %= "/' /etc/screenrc
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *