Как Ваш компьютер может дать доступ к себе через туннель средствами ssh, autossh, autosshd
Материал из ALT Linux Wiki
(Различия между версиями)
м (+викиссылки) |
м (→вы: ваш ключ, которому я позволю делать туннель у меня: более точное пояснение) |
||
Строка 8: | Строка 8: | ||
(делает обычный пользователь, не 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 |
====с моей стороны: пользователь и порт для туннеля==== | ====с моей стороны: пользователь и порт для туннеля==== |
Версия 19:01, 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
(там будет написан номер выделенного порта у меня, можете мне его сообщить)
С вашей стороны: вход для меня
пользователь для меня и ключ
- useradd -G wheel -m imz (группа wheel нужна, если я должен быть администратором)
- Сообщайте мне пароль root, когда мне нужно администрировать, или добавьте меня в /etc/sudoers.
- 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[2]
Примечания (о частных особенностях систем)
- ↑ Какой-нибудь текстовый редактор: например, medit в Simply Linux: medit ~/.ssh/config; или, например, emacs -- пакет с ним можно поставить, если он не стоит.
- ↑ похоже, что для systemd (например, в ALTLinux p7) эта команда никакой информации не даст... Какая же будет аналогичная команда?