Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
wiki:ssh [2013/11/08 07:21] [Еще про безопасность] |
wiki:ssh [2018/04/09 23:58] (текущий) [SSH aliases] |
||
|---|---|---|---|
| Строка 968: | Строка 968: | ||
| ==== Запрещение удаленного доступа для суперпользователя ==== | ==== Запрещение удаленного доступа для суперпользователя ==== | ||
| - | По умолчанию root-доступ разрешен. Это означает, что клиент при подключении в качестве пользователя может указать root, и во многих случаях получить контроль над системой. При условии, что по умолчанию в Ubuntu пользователь, добавленный при установке системы имеет возможность решать все административные задачи через sudo, создавать возможность root доступа к системе как минимум странно. Рекомендуется отключить эту опцию совсем, или применять ее только в режиме ''forced-commands-only''. Отключить root-доступ можно так: | + | По умолчанию root-доступ запрещен по паролю (по ключу - можно) - опция PermitRootLogin установлена в without-password((В более старых версиях и на некоторых других дистрибутивах может стоять и вовсе 'yes'.)). Но, при условии, что по умолчанию в Ubuntu пользователь, добавленный при установке системы имеет возможность решать все административные задачи через sudo, создавать возможность root доступа к системе через ssh - выглядит неразумно (даже при аутентификации по ключу). Рекомендуется совсем отключить. эту опцию, или применять ее только в режиме ''forced-commands-only''. Отключить root-доступ можно так: |
| <file> | <file> | ||
| PermitRootLogin no | PermitRootLogin no | ||
| Строка 1077: | Строка 1077: | ||
| Когда ssh работает на нестандартном порту: | Когда ssh работает на нестандартном порту: | ||
| - | <code=bash>ssh-copy-id -i "$IDENTITY" "-p $SSH_PORT $SSH_USER@$SSH_HOST"</code> | + | <code=bash>ssh-copy-id -i ~/.ssh/id_rsa.pub "-p port user@server"</code> |
| - | <note tip>Следует помнить, что символ '~' теряет смысл при экранировании. | + | <note tip>Если возникает ошибка: |
| - | + | ||
| - | Если возникает ошибка: | + | |
| <code>Bad port 'umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys'</code> | <code>Bad port 'umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys'</code> | ||
| попробуйте взять параметры в кавычки: | попробуйте взять параметры в кавычки: | ||
| - | <code=bash>ssh-copy-id '-i "$IDENTITY" "-p $SSH_PORT $SSH_USER@$SSH_HOST"'</code> | + | <code=bash>ssh-copy-id '-i /home/user/.ssh/id_rsa.pub "-p port user@server"'</code> |
| - | вот тут: http://mikegerwitz.com/2009/10/07/ssh-copy-id-and-sshd-port/ | + | |
| - | приводится пример: | + | |
| - | <code=bash>ssh-copy-id ‘-p XXXX -i ~/.ssh/id_rsa.pub username@host’</code> | + | |
| - | Если возникает ошибка | + | |
| - | <code>Warning: Identity file ~/.ssh/id_rsa not accessible: No such file or directory.</code> | + | |
| - | то необходимо прописать полный путь до файла ключа. | + | |
| </note> | </note> | ||
| Удобно при подключени на удалённой системе пользоваться [[wiki:screen|утилитой screen]]. | Удобно при подключени на удалённой системе пользоваться [[wiki:screen|утилитой screen]]. | ||
| ==== Настройка удаленной ssh-директории в Nautilus ==== | ==== Настройка удаленной ssh-директории в Nautilus ==== | ||
| Смотрите статью [[nautilus#Подключение к удаленным серверам|Nautilus]]. | Смотрите статью [[nautilus#Подключение к удаленным серверам|Nautilus]]. | ||
| - | ==== Монтирование удаленной папки с помощью sshfs ==== | + | ==== Монтирование удаленной директории с помощью sshfs ==== |
| - | монтируем удаленную папку в директорию след образом:<code bash>sshfs user@hostingserver.ru:/home/userdir ~/sshfsdir</code> | + | Монтирование удаленного каталога в локальный каталог <code bash>sshfs user@hostingserver.ru:/home/userdir ~/sshfsdir</code> |
| - | умоунт осуществляется следующей командой:<code bash>fusermount -u ~/sshsfdir</code> | + | Размонтирование <code bash>fusermount -u ~/sshsfdir</code> |
| + | ==== SSH aliases ==== | ||
| + | При использовании нескольких серверов с различными параметрами доступа (нестандартный порт, длинное имя хоста, логин отличный от локального, и т.п.) порой утомительно вводить все настройки подключения каждый раз заново. Для облегчения этого можно использовать aliases. | ||
| + | |||
| + | Настройки хранятся в ''~/.ssh/config'' для одного пользователя и в ''/etc/ssh/ssh_config'' глобально для всех пользователей. | ||
| + | |||
| + | Пример конфига. Описано может быть множество серверов. Подробнее в **man ssh_config** (не путать с **sshd_config**) | ||
| + | |||
| + | <code>Host AliasName # Произвольное имя хоста | ||
| + | HostName 1.2.3.4 # Можно указывать как IP, так и hostname (если работает DNS) | ||
| + | User YourUserName # Если пользователь не совпадает с локальным пользователем | ||
| + | Port YourSSHPort # Если нестандартный порт</code> | ||
| + | |||
| + | После этого можно подключаться к серверу командой <code bash>ssh AliasName</code> | ||
| ==== ssh-agent ==== | ==== ssh-agent ==== | ||
| Строка 1130: | Строка 1135: | ||
| ssh user@host | ssh user@host | ||
| Если смарт-карта (токен) подключена, будет запрошен пароль и выполнен вход в сессию SSH. | Если смарт-карта (токен) подключена, будет запрошен пароль и выполнен вход в сессию SSH. | ||
| + | |||
| + | ======Возможные проблемы при использовании====== | ||
| + | |||
| + | Привычная комбинация клавиш <key>Ctrl</key>+<key>s</key>, используемая во многих редакторах для сохранения исправлений, при работе в терминале с ssh-cервером приведёт к выполнению команды XOFF что внешне напоминает зависание сессии. Однако это не так. Сервер продолжает принимать вводимые символы и команды, но не выводит это на экран. Что бы выйти из такого затруднительного положения достаточно применить комбинацию <key>Ctrl</key>+<key>q</key>, тем самым включив режим XON обратно. | ||
| ===== Ссылки ===== | ===== Ссылки ===== | ||
| * [[http://help.ubuntu.ru/wiki/fail2ban|Fail2ban]] | * [[http://help.ubuntu.ru/wiki/fail2ban|Fail2ban]] | ||