Как Ваш компьютер может дать доступ к себе через туннель средствами ssh, autossh, autosshd: различия между версиями

Материал из ALT Linux Wiki
м (форматирование)
Строка 6: Строка 6:


====вы: ваш ключ, которому я позволю делать туннель у меня====
====вы: ваш ключ, которому я позволю делать туннель у меня====
(делает обычный пользователь, не root)
'''(делает обычный пользователь, не root)'''
* ssh-keygen -f ~/.ssh/id_for_tunnel -C 'tunnel wanted by NAME'
* ssh-keygen -f ~/.ssh/id_for_tunnel -C 'tunnel wanted by NAME'
* Сообщите мне его открытую (т.н. "публичную") часть: cat ~/.ssh/id_for_tunnel.pub
* Сообщите мне его открытую (т.н. "публичную") часть: cat ~/.ssh/id_for_tunnel.pub


====с моей стороны: пользователь и порт для туннеля====
====с моей стороны: пользователь и порт для туннеля====
(делает администратор)
'''(делает администратор)'''
* useradd -m tun_NAME
* useradd -m tun_NAME
* Позволяю входить по вашему ключу: cat >> ~tun_NAME/.ssh/authorized_keys
* Позволяю входить по вашему ключу: cat >> ~tun_NAME/.ssh/authorized_keys
Строка 17: Строка 17:


====вы: сохраняете конфигурацию====
====вы: сохраняете конфигурацию====
(делает тот же обычный пользователь, не root)  
'''(делает тот же обычный пользователь, не root)'''


* Впишите в ~/.ssh/config конфигурацию (например, cat >> ~/.ssh/config -- дописывает в конец файла; потом Ctrl-D), о которой мы договорились:
* Впишите в ~/.ssh/config конфигурацию (например, cat >> ~/.ssh/config -- дописывает в конец файла; потом Ctrl-D), о которой мы договорились:
Строка 39: Строка 39:
===Запуск туннеля===
===Запуск туннеля===
==== вы: инициируете туннель (каждый раз, когда нужно)====
==== вы: инициируете туннель (каждый раз, когда нужно)====
(делает тот же обычный пользователь, не root)  
'''(делает тот же обычный пользователь, не root)'''


* ssh imz_tunnel
* ssh imz_tunnel
Строка 46: Строка 46:


==С вашей стороны: вход для меня==
==С вашей стороны: вход для меня==
([[Su|делается root]])
'''([[Su|делается root]])'''


====пользователь для меня и ключ====
====пользователь для меня и ключ====

Версия от 19:12, 15 декабря 2013

Туннель

Конфигурация туннеля

вы и я: ваше имя

  • Договоримся об имени для вашего компьютера (по которому я буду вести у себя учёт). Обозначим его NAME; дальше вместо NAME будем подставлять это выбранное ваше имя.

вы: ваш ключ, которому я позволю делать туннель у меня

(делает обычный пользователь, не root)

  • ssh-keygen -f ~/.ssh/id_for_tunnel -C 'tunnel wanted by NAME'
  • Сообщите мне его открытую (т.н. "публичную") часть: cat ~/.ssh/id_for_tunnel.pub

с моей стороны: пользователь и порт для туннеля

(делает администратор)

  • useradd -m tun_NAME
  • Позволяю входить по вашему ключу: cat >> ~tun_NAME/.ssh/authorized_keys
  • Выбираю у себя номер порта и сообщаю его вам. (Пусть он обозначается PORT_NAME.) Возможна конфигурация, когда порт выбирается автоматически (как в конфигурации ниже); тогда заранее договариваться о номере порта не надо.

вы: сохраняете конфигурацию

(делает тот же обычный пользователь, не root)

  • Впишите в ~/.ssh/config конфигурацию (например, cat >> ~/.ssh/config -- дописывает в конец файла; потом Ctrl-D), о которой мы договорились:
 Host imz_tunnel
      Hostname 79.165.57.121
      Port 2202
      User tun_NAME
      IdentityFile ~/.ssh/id_for_tunnel
      ForwardX11 no
      Compression yes
      CompressionLevel 9
      RemoteForward 0 localhost:22

0 в качестве номера порта значит, что порт будет подобран автоматически (и напечатается ssh-клиентом -- см. команду ниже). В таком случае о номере порта можно заранее не договариваться.

(NAME нужно заменить на имя, выделенное для вас.)

Отредактировать ~/.ssh/config можно каким-нибудь текстовым редактором[1].

Запуск туннеля

вы: инициируете туннель (каждый раз, когда нужно)

(делает тот же обычный пользователь, не root)

  • ssh imz_tunnel

(там будет написан номер выделенного порта у меня, можете мне его сообщить)

С вашей стороны: вход для меня

(делается root)

пользователь для меня и ключ

  • useradd -G wheel -m imz (группа wheel нужна, если я должен быть администратором)
  • Сообщайте мне пароль root, когда мне нужно администрировать, или добавьте меня в /etc/sudoers.[2]
  • cat >> ~imz/.ssh/authorized_keys
   ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAyUMWCDcoo3xlTilUObv06CKzCO+sj0fLHzIf9aBSa0jheHeknPP850S+65CU1Hds8gm4bLC1DWtDQ2ciIkEfDeKHBKpVpUKKbhs2b263Nw8ZEA1nR+C20lrvNM4XSft9DWpC3Z2pRsOYqs0e1rpUM0OotL15f/OUvhoeIP1fHpKrZPzWZ8tir5VTstL4d2jUZ1w0FJMwnPSK2uQ6hTMLXMfiBj5ZLLgXh+gd23x07i3X9I0AM3Jf6hMsrmpY6NrdhcSLQ12Zap3q7kO3tpR2Q10SobOEFRzKwjxwnrwVk29YWDaCm1L8m3bSbn1nmeMVok5Qquq/qRuTMzIuzsYLdw== imz@vaio

ssh-сервер у вас работает?

  • service sshd status
  • Если нет, включите: service sshd start
  • Если не стоит этот пакет, поставьте: apt-get install openssh-server
  • Включите навсегда: chkconfig sshd on
  • Посмотрите, будет ли он запускаться теперь всегда: chkconfig --list sshd[3]

Примечания (о частных особенностях систем)

  1. Какой-нибудь текстовый редактор: например, medit в Simply Linux: medit ~/.ssh/config; или, например, emacs -- пакет с ним можно поставить, если он не стоит.
  2. На самом деле, например, в ALTLinux p7 пользователи из группы wheel и так уже могут пользоваться sudo. Но чтобы пользоваться sudo, нужно иметь свой пароль. Его можете установить вы: passwd imz; или дать это сделать мне, когда я войду и стану администратором через su -, узнав от вас ваш пароль root-а.
  3. похоже, что для systemd (например, в ALTLinux p7) эта команда никакой информации не даст... Какая же будет аналогичная команда? -- Подскажите кто-нибудь!