linux screen

Чрезвычайно полезная утилита screen есть в linux. Она позволяет создавать в терминале ssh несколько экранов и удобно переключаться между ними. Также полезен screen в случае если надо делать какие-то операции по ssh и обрывы связи вредны (например у многих провайдеров установлены таймауты на сессии tcp).  Достаточно просто, работать в скрин и удобно. И еще у screen дополнительные функции вроде создания нескольких окон внутри сессии. Теперь рассмотрим утилиту screen подробнее.

Установить утилиту легко, для пользователей CentOS

~]# yum install screen

Для любителей Debian, Ubuntu:

~]#apt-get install screen

Запуск утилиты:

~]# screen

Теперь,  для того чтобы отключиться от экрана, нажимаем Ctrl+A затем d

[detached]
[root@srv2 ~]#

Комбинации клавиш в сеансе screen:

  • Ctrl+A c – создать окно в текущей сессии
  • Ctrl+A n – следующее окно
  • Ctrl+A p – предыдущее окно
  • Ctrl+A d – отключиться от screen (но при этом сессия останется работать в фоне)

Переподключиться к запущенной в фоне screen:

~]# screen -r

Для примера берём задачу, скачать iso-шку CentOS. Далее будет понятнее если показать выкладки из шела.

~]# screen
~]# wget http://mirror.yandex.ru/centos/6/isos/x86_64/CentOS-6.0-x86_64-LiveCD.iso

Теперь, для того чтобы отключиться от экрана, нажимаем Ctrl+A затем d

 ~]# screen -ls
There is a screen on:
        11524.pts-0.abel        (Detached)
1 Socket in /var/run/screen/S-root.
 ~]# screen -r 11524.pts-0.abel

Для того чтобы узнать другие комбинации клавиш работающие/полезные в screen наберите в окне screen Ctrl+A затем «?»

SSH-доступ по ключам на Linux серверах (безпарольный доступ)

Для доступа по ssh-ключам мы будем использовать открытый и закрытый ключи. Далее инструкция по настройке.

В нашем распоряжении 2 сервера (может быть 3,4,и т.д.) srv1 и srv2. Нам нужно зайти с srv1 на srv2 по открытому ключу и обратно с srv2 на srv1 под пользователем root.
1. Сначала нужно создать пару ключей на srv1:

root@srv1$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/root/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_dsa.
Your public key has been saved in /root/.ssh/id_dsa.pub.
The key fingerprint is:
45:v5:1e:30:gj:d9:a2:95:6c:7a:ga:91:1b:f6:45:u8 root@srv1
The key's randomart image is:
+--[ DSA 1024]----+
|    T .  .       |
|  . . .          |
|      D.         |
|     . . .       |
|        W =      |
|       + A .     |
|    . 6 J K      |
|     H + Y +     |
|    . . . + .    |
+-----------------+

Вместо DSA можно использовать алгоритм RSA (опция -t rsa), однако он менее надежный.

2. Теперь нужно дописать содержимое публичного ключа /root/.ssh/id_dsa.pub в файл authorized_keys srv2.
Проверим, где лежит необходимый нам файл командой:

cat /etc/ssh/sshd_config | grep 'AuthorizedKeysFile'
AuthorizedKeysFile      /etc/ssh/authorized_keys

Дописываем в файл:

cat ~/.ssh/id_dsa.pub | ssh root@srv2 "cat - >> ~/.ssh/authorized_keys"

Или проще, через редактор vim

vim /etc/ssh/authorized_keys

3. Подключаемся к серверу srv2 без пароля:

> ssh root@srv2
Hi, welcome to SRV2. Have a nice day!
Last login: Wed Aug 31 10:03:22 2011 from SRV1

Для доступа с SRV2 на SRV1 проделываем все то же самое, только с сервера SRV2.

Если что-то не получилось, то включаем траблшутинг:

ssh -vv root@srv2

Если вы видите:
debug1: Authentications that can continue: password,keyboard-interactive
то у вас прописано «PubkeyAuthentication no» в конфигурации sshd, меняем на «yes», перезагружаем sshd.

debug2: we sent a publickey packet, wait for reply
Сверяем содержимое ~/.ssh/id_dsa.pub на сервере SRV1 с содержимым /etc/ssh/authorized_keys на SRV2

Если доступ ssh с public keys у вас работает, можете отключать вход с использованием логина и пароля:

vim /etc/ssh/sshd_config
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

Удачи!