И
так, SSH
(англ. Secure
Shell
— «безопасная оболочка») — сетевой
протокол прикладного уровня, позволяющий
производить удалённое управление
операционной системой и туннелирование
TCP-соединений. Вданной статье пойдет
разговор о настройке серверной части
SSH.
Все
команды выполнялись от прав пользователя
root.
1.
Устанавливаю SSH — 'apt-get
install ssh'.
После установки останавливаю его, ибо
нужно сконфигурировать его под мои
нужды - '/etc/init.d/ssh
stop'.
2.
Собственно редактирую конфиг SSH-сервера
— 'nano /etc/ssh/sshd_config',
до следующего вида:
# Package
generated configuration file
# See the
sshd(8) manpage for details
#
What ports, IPs and protocols we listen for
# Меняем
стандартный порт 22 для большей
безопасности на 122 или иной
Port
122
# Use
these options to restrict which interfaces/protocols sshd will
bind to
#ListenAddress
::
#ListenAddress
0.0.0.0
# Указываем
серверу работать лишь по 2 протоколу
Protocol
2
#
HostKeys for protocol version 2
HostKey
/etc/ssh/ssh_host_rsa_key
HostKey
/etc/ssh/ssh_host_dsa_key
#Privilege
Separation is turned on for security
UsePrivilegeSeparation
yes
#
Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval
3600
ServerKeyBits
768
# Logging
SyslogFacility
AUTH
LogLevel
INFO
#
Authentication:
LoginGraceTime
120
# Запрещаем
подключение к серверу по логину root
PermitRootLogin
no
# Отключаем
проверку прав пользователей в их
домашних каталогах перед тем, как
пустить на сервер
StrictModes
no
# Разрешаем
подключение только перечисленным
пользователям
AllowUsers
demon klim dethroner
RSAAuthentication
yes
PubkeyAuthentication
yes
#AuthorizedKeysFile %h/.ssh/authorized_keys
# Don't
read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts
yes
# For
this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication
no
# similar
for protocol version 2
HostbasedAuthentication
no
#
Uncomment if you don't trust ~/.ssh/known_hosts for
RhostsRSAAuthentication
#IgnoreUserKnownHosts
yes
# To
enable empty passwords, change to yes (NOT RECOMMENDED)
# Согласно
рекомендациям запрещаем подключение
пользователей с пустыми паролями
PermitEmptyPasswords
no
# Change
to yes to enable challenge-response passwords (beware issues with
# some
PAM modules and threads)
ChallengeResponseAuthentication
no
#
Change to no to disable tunnelled clear text passwords
# Отключаем
вход на сервер по паролям
PasswordAuthentication
no
#
Kerberos options
#KerberosAuthentication
no
#KerberosGetAFSToken
no
#KerberosOrLocalPasswd
yes
#KerberosTicketCleanup
yes
# GSSAPI
options
#GSSAPIAuthentication
no
#GSSAPICleanupCredentials
yes
X11Forwarding
yes
X11DisplayOffset
10
PrintMotd
no
PrintLastLog
yes
TCPKeepAlive
yes
#UseLogin
no
#MaxStartups
10:30:60
#Banner
/etc/issue.net
# Allow
client to pass locale environment variables
AcceptEnv
LANG LC_*
Subsystem
sftp /usr/lib/openssh/sftp-server
UsePAM yes
|
3.
Генерирую ключи для каждого пользователя
(в моем случае demon
klim dethroner).
Можно пользоваться средствами самой
ОС – описано тут
(пункт 2), но я пользуюсь PuTTYGen.
Т.е. запускаю программу нажимаю кнопку
«Generate» перемещаю курсор
мышки по экрану для набора случайной
статистики при генерации. Должно
получиться что-то типа:
4.
Далее сохраняю ключи в надежном месте,
получаю файлы вида:
public
----
BEGIN SSH2 PUBLIC KEY ----
Comment:
"rsa-key-20150209"
AAAAB3NzaC1yc2EAAAABJQAAAIB245BgWSXUf/qC8c5vytQBLp1B6dMO0cJ9YyUIIHcOwWYz
wLbmQynlTZGB6IKFmtqF+z6cHdzx9NE2Mn2hD9nb0ThG8NsS72FLpxGgfVhsMlKeKuGyR3EdV89tY lgCKYLta+QXA/FPmMtXjldQ+z3xqWFSjp5waelbMJSNGVQSlw==
---- END SSH2 PUBLIC KEY ----
|
private.ppk
PuTTY-User-Key-File-2:
ssh-rsa
Encryption:
none
Comment:
rsa-key-20150209
Public-Lines:
4
AAAAB3NzaC1yc2EAAAABJQAAAIB245BgWSXUf/qC8c5vytQBLp1B6dMO0cJ9YyUIIHcOwWYz
wLbmQynlTZGB6IKFmtqF+z6cHdzx9NE2Mn2hD9nb0ThG8NsS72FLpxGgfVhsMlKeKuGyR3EdV89tY lgCKYLta+QXA/FPmMtXjldQ+z3xqWFSjp5waelbMJSNGVQSlw==
Private-Lines:
8
AAAAgDAyvf2L7L3usaq1DoBZJYPwTZdDHjZwtqGJDwNLbolw/+t3pBgpEPwYhxj9ZVjCPOo1bGjN1
hzmta4wJRfIJ+LwuBfU4U8x3JUaBRdHerhFlk3jLF8NAdVwi5QwCzCrCobZql+kpWX8QsvE5AXcsBT USB19+OdBlTY4oeraMQodAAAAQQC2+r0kr3ovycrvHMLyQ8VB8yeWhg9yknpZiyEhJMJz2g7SNVI KXLwbBxWVfgxa/ihtXp4LPngR9aR2KE4IuN3vAAAAQQCmVU8DVSq8EP/eLJMN9wKI/ceGIWMKHmFPDiL95HJUBl7FCoO4yWS6MI+bt+DVOB5jlRZuxs76cpdh7eqyIj3ZAAAAQQC216nt eeUyXbQkF9tMPeHjKfpQ7B5JTnhHTQ43J5QJSGp2whVoRK5Zzry/DCcOhG3v/QEZiKw1eLutVJRt6QWN
Private-MAC:
5d1f912438f2712c6701170dd77b08ba6b5fa918
|
5. В
домашней папке каждого пользователя,
разрешенного в конфиге, создаю файл в
домашней директории, где будет храниться
публичный ключ, например - 'touch
/home/dethroner/.ssh/authorized_keys'
6.
Назначаю права
на созданную
папку .ssh - 'chown
dethroner:dethroner /home/dethroner/.ssh'
и 'chmod 700 /home/dethroner/.ssh'
7.
Прописываю сгенерированный ключ в
созданный файл - 'nano
/home/dethroner/.ssh/authorized_keys
', получаю что-то типа:
ssh-rsa
AAAAB3NzaC1yc2EAAAABJQAAAIB245BgWSXUf/qC8c5vytQBLp1B6dMO0cJ9YyUIIHcOwWYz
wLbmQynlTZGB6IKFmtqF+z6cHdzx9NE2Mn2hD9nb0ThG8NsS72FLpxGgfVhsMlKeKuGyR3EdV89tY lgCKYLta+QXA/FPmMtXjldQ+z3xqWFSjp5waelbMJSNGVQSlw== dethroner@server.ex |
8.
Назначаю права на файл - 'chmod 600
/home/dethroner/.ssh/authorized_keys'
9.
Запускаю SSH - '/etc/init.d/ssh
start'
11.
Добавляю указанных пользователей для
обеспечения root доступа
из-под sudo для это набираю
- 'visudo' (файл /etc/sudoers откроется в редакторе
по умолчанию) и добавляю:
#
/etc/sudoers
#
# This
file MUST be edited with the 'visudo' command as root.
#
# See the
man page for details on how to write a sudoers file.
#
Defaults env_reset
# Host
alias specification
# User
alias specification
# Cmnd
alias specification
# User
privilege specification
root ALL=(ALL)
ALL
demon
ALL=(ALL) NOPASSWD: ALL
dethroner
ALL=(ALL) NOPASSWD: ALL
klim
ALL=(ALL) NOPASSWD: ALL
#
Uncomment to allow members of group sudo to not need a password
# (Note
that later entries override this, so you might need to move
# it
further down)
# %sudo ALL=NOPASSWD: ALL
|
Затем
жму 'ctrl+o',
'enter', 'ctrl+x'
для сохранения изменений и выхода из
редактора.
12.
При использовании PuTTY
для подключения к SSH-серверу
указываю адрес и порт в программе:
Так
же указываю путь к private.ppk
Нажимаю
«Open» и подключаюсь к
SSH-серверу. Ну или можно
сохранить настройки, чтобы не вводить
постоянно. После подключения к SSH-серверу
в строке логин ввожу имя пользователя
и попадаю в систему. Доступ с правами
root осуществляется
посредством sudo.