Автор Тема: ssh удалённый доступ к системе. Общие вопросы  (Прочитано 14718 раз)

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 239
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
А что там в манах, по этому поводу?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 239
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Цитировать
...
   EnableSSHKeysign
             Значение “yes” указанное в глобальном файле конфигурации
             /etc/ssh/ssh_config позволяет во время аутентификации по хосту (
             HostbasedAuthentication ) использовать вспомогательную программу
             ssh-keysign(8) Допустимые значения - “yes” и “no”.  Значение по
             умолчанию - “no”. Эта директива должна указываться в самом общем
             разделе файла (для всех хостов).
  См.  ssh-keysign(8)
....
     HostbasedAuthentication
             Пытаться ли выполнять аутентификацию по хосту, т.е.
             аутентификацию по rhosts или /etc/hosts.equiv в сочетании с
             открытым ключом.  Допустимые значения - “yes” и “no”.  Значение
             по умолчанию - “no”.  Этот параметр схож с
             RhostsRSAAuthentication и применим только к протоколу версии 2
...

Что-то совмещённого режима не просматривается, что-бы с одних адресов по паролю, а с дпугих пол ключу. Но советую вам самим в man взглянуть, вдруг я что-то не доглядел.

Оффлайн Александр Ерещенко

  • Завсегдатай
  • *
  • Сообщений: 1 146
Проблема решена. Правильное решение подсказал В.А. Илларионов в рассылке https://lists.altlinux.org/pipermail/sysadmins/2015-December/037352.html
Match Address 127.0.0.1
     PasswordAuthentication yes
Спасибо! Теперь работает как надо.
Еще подстроил на предмет, какого пользователя откуда пускать (напр., admin - отовсюду, nx-клиент - только из локалки, user - только через nx-клиент):

AllowUsers  admin nx@192.168.0.* user@127.0.0.1

Оффлайн hasculdr

  • Завсегдатай
  • *
  • Сообщений: 672
Не смог управиться с этими инструкциями - https://www.altlinux.org/SSH и https://forum.altlinux.org/index.php/topic,9175.msg124450.html#msg124450.
Цитировать
Для создания ключа на компьютере пользователя нужно выполнить $ ssh-keygen -t dsa
Компьютер пользователя - это "терминал", откуда будет производиться подключение к удаленному компьютеру с запущенной службой sshd, который "сервер"? Оба ключа должны храниться на "терминале"?
Цитировать
Настройка входа (на сервере)

Для того, чтобы пользователь мог авторизоваться в системе через ssh-ключ, нужно в файл ~/.ssh/authorized_keys добавить содержимое файла id_dsa.pub.
Я "сам" должен создать на "сервере" каталог ~/.ssh и скопировать туда публичный ключ с "терминала"? При авторизации по ключам уже не нужны имена пользователей? Подключение должно осуществляться командой $ ssh ip_адрес "сервера"?
Файл config автоматически не создается - его обязательно делать самому, или достаточно правки /etc/openssh/sshd_config? Нужен ли файл конфигурации на "терминале"?

Оффлайн hasculdr

  • Завсегдатай
  • *
  • Сообщений: 672
    Для создания ключа на компьютере пользователя нужно выполнить $ ssh-keygen -t dsaКомпьютер пользователя - это "терминал", откуда будет производиться подключение к удаленному компьютеру с запущенной службой sshd, который "сервер"? Оба ключа должны храниться на "терминале"?
Почитав другие руководства, убедился что это действительно так. Но логически мозг упорно считает, что закрытый ключ должен быть на "закрытой" удаленной стороне, а открытым ключом должны подключаться все, у кого он имеется.
Сейчас открытый ключ скопирован (почтой ;-D) на "сервер". Служба sshd запущена. На "терминале" набираю команду $ ssh 192.168.1.34
и получаю ответ
Цитировать
ssh: connect to host 192.168.1.34 port 12345: Connection refused
(порты в конфиге на "терминале" /etc/openssh/ssh_config и конфиге на "сервере" /etc/openssh/sshв_config сменил не нестандартные).

upd. номера портов в конфигах на обоих компьютерах должны совпадать. Интуиция дала сбой).
« Последнее редактирование: 09.12.2015 17:28:47 от hasculdr »

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 239
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Я так делаю. Создают закрытый ключ у себя, а потом командой ssh-copy-id отсылают на сервер свой открытый ключ.

Оффлайн hasculdr

  • Завсегдатай
  • *
  • Сообщений: 672
Лежа после еды на диванчике таки пришло осознание того, где какой ключ должен быть, и почему))). Но скопировать публичный ключ на сервер командой ssh-copy-id у меня бы не получилось - в конфиге sshd была строка AllowUsers с именем пользователя, имя совпадало на обоих компьютерах, но соединение сбрасывалось. В логах писалось что пользователю не разрешен доступ. Пробовал вариант имя@ip_терминала - тоже самое. Закоментировал эту строку (т.е. доступ стал разрешен любому пользователю), только тогда все заработало.
Ну и отвечу сам себе:
Цитировать
Файл config автоматически не создается - его обязательно делать самому, или достаточно правки /etc/openssh/sshd_config? Нужен ли файл конфигурации на "терминале"?
Приоритет настроеккомандная строка -> файл пользовательских настроек (тот самый ~/.ssh/config) -> стандартные файлы настроек /etc/openssh/ssh(d)_config Так что файл лучше создавать свой, чтобы было куда "возвращаться"). Ну и невероятный сюрприз для меня на сегодня: man выдает справки не только на команды, но и на файлы конфигураций (man ssh(d)_config) ;-).

Оффлайн gvy

  • alt linux team
  • ***
  • Сообщений: 1 008
    • Альт на Эльбрусе
    • Email
Но логически мозг упорно считает, что закрытый ключ должен быть на "закрытой" удаленной стороне
Перескажите мозгу про "ключик-замочек": замок открыт всем, а вот ключ прячут.
--
Michael Shigorin | ALT Linux Team | ANNA-News | Сделано у нас | altlinux.org/эльбрус

Оффлайн hasculdr

  • Завсегдатай
  • *
  • Сообщений: 672
В ~/.ssh/config настройки только для клиента? Сервер sshd настраивается только через /etc/...?

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 239
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Пока коротко отвечу нет.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 239
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
В ~/.ssh/config

В  ~/.ssh/config находятся как клиентские, так и серверные настройки для конкретного пользователя. В /etc/... находятся общесистемные настройки как клиента, так и сервера для данного компьютера.

Оффлайн hasculdr

  • Завсегдатай
  • *
  • Сообщений: 672
Видимо порт относится именно к общесистемным). В файле на сервере указал нужный порт, но прослушивается именно стандартный.

Оффлайн ruslandh

  • Поспешай не торопясь !
  • Модератор глобальный
  • *****
  • Сообщений: 32 239
  • Учиться .... Телепатами не рождаются, ими ....
    • Email
Ну да - не может сервер для каждого пользователя слушать свои порты.

Оффлайн hasculdr

  • Завсегдатай
  • *
  • Сообщений: 672
ssh не записывает логи.
cat /etc/openssh/sshd_config | grep log
#SyslogFacility AUTHPRIV
В /var/log/syslog/messages и /var/log/auth/* пустые файлы. Похоже, у меня вообще никакие логи не пишутся.

upd. сумел включить syslogd.
« Последнее редактирование: 25.02.2016 16:36:25 от hasculdr »

Оффлайн Александр Ерещенко

  • Завсегдатай
  • *
  • Сообщений: 1 146
ssh не записывает логи
Наверное, потому что systemd, и логи смотреть через journalctl
Напр. для sshd:

journalctl -u sshd