SSH Linux

From SysadminWiki.ru
Jump to: navigation, search

Быстрое подключение

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

ssh srv

добавляем в файл конфигурации ~/.ssh/config (т.е. файл config в подкаталоге .ssh домашнего каталога) строки:

Host srv
  HostName domain.ru
  Port 22
  User www
  IdentityFile ~/.ssh/rsa_key

где:

  • www -- пользователь, которым подключаемся
  • rsa_key -- имя файла с секретным ключом SSL сертификата (параметр не обязателен)

Ограничение на подключения

Ограничения вносятся в конфигурационный файл сервера OpenSSH: /etc/ssh/sshd_config.

Разрешаем подключение только указанным пользователям:

AllowUsers user1 user2

Разрешаем всем, кроме указанных пользователей:

DenyUsers user3 user4

Подробней о ограничениях см в статье в on-line журнале о Linux

Подключаемся из Linux к Linux

- Чтобы подключаться без пороля по защищённому соединению ssh, нужно создать пару ключей (публичный и приватный) командой ssh-keygen. Место хранения ключей по умолчанию: $HOME/.ssh. Названия файлов по умолчанию:

  • id_rsa -- приватный
  • id_rsa.pub -- публичный

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

- Для генирации ключа запускаем от пользователя. На запрос пароля жмём enter, чтобы не пришлось потом вводить этот пароль при подключении. Итак, создаём:

$ ssh-keygen -t rsa

Generating public/private rsa key pair. Enter file in which to save the key (/home/pavel/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/pavel/.ssh/id_rsa. Your public key has been saved in /home/pavel/.ssh/id_rsa.pub. The key fingerprint is:

da:eb:83:04:f4:d2:1f:52:b7:90:5c:cb:1b:2e:ee:59 pavel@teo.mynetwork.ru

- Чтобы разрешить (запретить = no) подключение пользователем root в /etc/ssh/sshd.conf (или /etc/openssh/sshd_config) меняем:

PermitRootLogin yes
PermitEmptyPasswords no
PasswordAuthentication yes

- Публичный ключ нужно скопировать на удалённый компьютер в домашнюю директорию пользователя, которым будем подключаться, в файл $HOME/.ssh/authorized_keys, т.е. для root это /root/.ssh/authorized_keys, а для пользователя pavel это будет /home/pavel/.ssh/authorized_keys. В этом файле по одному в строку будут располагаться все публичные ключи удалённых пользователей, которым мы дадим доступ для такого соединения.

- Проверяем. Пытаемся подключиться к удалённому компьютеру пользователем pavel:

[pavel@teo .ssh]$ ssh pavel@10.0.0.254 [pavel@astra pavel]$

По смене приглашения командной строки видим, что подключились удачно.

  • Отпечатки всех компьютеров, к которым мы подключались по шифрованному каналу хранятся в $HOME/.ssh/known_hosts.

Подключаемся из Windows к Linux

Схема подключения та же самая, только в Windows для подключения используем программу PuTTY.

См. также

Создание vpn туннеля

Ссылки