Проверить статус ssh:
# systemctl status ssh
Если услуга отключена:
# systemctl enable ssh #enable run on startup
# systemctl start ssh #start it right now
Если вы получаете сообщение об ошибке, почему он не запускается:
# journalctl -u ssh
Там вы должны увидеть, почему он не запускается, и действовать соответственно.
Вы также можете попробовать настроить ufw, чтобы разрешить ssh со всех адресов:
# ufw enable ssh
РЕДАКТИРОВАТЬ :Ответ на комментарий:
Он не запускается, но я не понимаю почему. Является ли 192.168.0.120 IP-адресом устройства, к которому вы хотите подключиться по SSH, и возможно ли, что он был изменен из-за DHCP? Вы можете проверить с "IP-адрес". Если ваш ssh-сервер имеет только 1 IP-адрес, этот параметр на самом деле не нужен, и в случае смены IP-адреса возникнут проблемы.
Я бы порекомендовал удалить пакет и переустановить его, возможно, это самый быстрый способ получить рабочую среду по умолчанию. Но когда вы удаляете пакет, вы также должны удалить конфиги,в Ubuntu (и других производных Debian )вы добавляете «--purge» к «apt remove ssh», попробуйте найти что-то подобное для своего дистрибутива. После такого удаления/переустановки у вас не должно быть старых конфигураций, и вы можете снова добавить свои настройки.
$ sudo apt remove --purge ssh
Если вы хотите перечислить IP-адреса, к которым вы хотите подключиться, ОТ (, а не К ), решение находится по ссылке ниже. Это позволяет вам разрешить подключение к определенным IP-адресам, а другим — нет. (ufw — это просто оболочка iptables, поэтому команда будет иметь тот же эффект, что и команды ufw ). Если вы добавите TO IP, то этот IP-адрес должен быть IP-адресом вашего хост-устройства SSH, короче :тот, который мы пытаемся исправить, опять же, если у вас только 1 IP-адрес, я не вижу смысла, либо вы разрешаете подключение или нет. Возможно, если вы использовали больше IP-адресов на сервере SSH и хотели бы разрешить некоторым принимать SSH-соединения, а другим — нет.
#include <unistd.h>
#include <fcntl.h>
#define MSGSIZE 1024
int main() {
char inbuf[MSGSIZE];
int n, fd, p[2], i;
if ((fd=open("/etc/passwd", O_RDONLY))<0)
exit(2);
if (pipe(p) < 0)
exit(1);
/* continued */
/* write pipe */
while ((n=read(fd,inbuf,MSGSIZE))>0)
write(p[1], inbuf, n);
close(p[1]);
while ((n=read(p[0],inbuf,MSGSIZE))>0)
write(1,inbuf,n);
exit(0);
}
Это работает. Однако я не уверен, в чем смысл этого упражнения.