Как я утверждаю определенные компьютеры к ssh в машину с отключенной аутентификацией по паролю?

Инструкции в help.ubuntu.com/community/SSH/OpenSSH/Configuring рекомендуют отключить аутентификацию по паролю так, чтобы "только было возможно соединиться от компьютеров, которые Вы конкретно утвердили". Но они не говорят, как конкретно утвердить компьютер. Как я делаю это?

4
задан 6 July 2011 в 03:37

2 ответа

На каждом пользователе Вы хотите иметь доступ к серверу, работать в терминале:

ssh-keygen
ssh-copy-id <username>@<serverIPorDNSname>

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

Первая команда создает ssh ключ для тока пользователь, на этом работают. Второй ssh's команды в сервер и добавляет ключ текущего пользователя к списку сервера того, кому разрешают войти в систему. Так как ssh-copy-id использует ssh, необходимо будет сделать это перед отключением логинов пароля.

Ключи SSH являются двумя половинами соответствия. Одна половина сказана всем, другой держится в секрете. Используя математический алгоритм, общедоступная половина может использоваться для дешифрования данных, зашифрованных с закрытым ключом. Если данные дешифруют успешно с открытым ключом, Вы знаете вне сомнения, что это была частная половина ключа, который зашифровал его. Таким образом, когда Вы входите в систему с ssh ключом, клиент отправляет сообщение (зашифрованное использование закрытого ключа), который в основном говорит, "впускает меня". Проверки сервера с помощью открытого ключа и если открытый ключ находится в списке позволенных компьютеров вход в систему, успешны.

ssh-copy-id (использующий ssh) копирование общедоступной половины к списку серверов того, во что ключам позволяют войти (этот список хранится в / домой / <имя пользователя>/.ssh/authorized_keys2, или в случае корня в/root/.ssh/authorized_keys2). Если Вы уже отключили аутентификацию по паролю, можно все еще добавить компьютер. Просто необходимо скопировать открытый ключ (в/home/username/.ssh/id_rsa.pub на клиентском компьютере) к чему-то как карта с интерфейсом USB и затем добавить содержание id_rsa.pub в конец / домой / <имя пользователя>/.ssh/authorized_keys2 файл на сервере. (Вы могли сделать это путем выполнения команды как cat /media/USB/stick/path/to/id_rsa.pub >>/home/<username>/.ssh/authorized_keys2 на сервере.)

8
ответ дан 1 December 2019 в 09:11

Iptables

Если компьютеры имеют определенный диапазон IP, Вы могли бы использовать iptables для управления доступом. Iptables являются частью ядра. Можно управлять ими в файле /etc/iptables

# from /etc/iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
#
# loopback device
#
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
#
# all connections already established (started outgoing from my machine)
#
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#
# but SSH - restricted
#
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 --source 138.232.0.0/255.255.0.0 -j ACCEPT
#
# block all others (without answering - thus nobody is able to scan the network)
#
-A INPUT -p icmp --icmp-type echo-request -j DROP
-A RH-Firewall-1-INPUT -j DROP
COMMIT

Интересная строка - этот:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 --source 111.111.0.0/255.255.0.0 -j ACCEPT

Протестант 22 является значением по умолчанию ssh порт. Если это отличается с Вами машина, измените его. 111.111.0.0/255.255.0.0 -j ACCEPT средства это принимает все соединения, прибывающие из '111.111.foo.bar' с 'нечто' и 'панелью', являющейся любыми 3 цифрами.

0
ответ дан 1 December 2019 в 09:11

Другие вопросы по тегам:

Похожие вопросы: