SSH!
SSH - це команда бога - я думаю, що це найцінніша команда над усім, яку треба вивчити. Ці параметри можуть бути досить непростими, але, схоже, я постійно вчусь використовувати нові параметри командного рядка для SSH, які, як я ніколи не вважав, буде необхідним. Я, можливо, використовував їх усі в цей момент.
Чим більше ви його використовуєте, тим більше ви дізнаєтесь про нього. Ви можете використовувати його, щоб зробити деякі дивовижні речі.
Примітка: ВСІ ці речі можна виконувати віддалено, без налаштування на вашому сервері, за винятком запуску ssh-сервера.
Встановіть файлову систему через Інтернет
пошук у мережі SSHFS
Команди вперед .
Протокол SVN + SSH - це Subversion від віддаленого клієнта до сервера, на якому НЕ працює DEAMON! Команда SVN запускає сервер через оболонку ssh і передає інформацію туди-сюди через існуючу трубу. Програма rsync робить те саме, працює проти сервера, де не використовується rsync deamon, запустивши його через SSH. Написати власні файли bash легко, щоб зробити подібні хитрощі.
Ланцюг пройти через брандмауер
Я використовую це весь час, щоб перейти через мій сервер Linux вдома на свій Mac.
Порти
переадресації : Вам здається лише помірно корисним, поки ви не зрозумієте, що можете перейти через домашній брандмауер та налаштувати свій маршрутизатор вдома з роботи, як ніби це робили в домашній мережі).
Пересилає запити X:
Це ще одна дивовижна. З сервером X або без нього, який працює у віддаленій системі, ви можете запустити програму x-windows, і вікно з’явиться на вашому локальному екрані. Просто використовуйте перемикач -X, ось і все!
Оскільки вам не потрібно, щоб на віддаленому сервері працював X-сервер, вплив процесора на ваш сервер мінімальний, ви можете мати сервер TINY Linux, який обслуговує величезні додатки до вашого потужного ігрового ПК під управлінням Windows та cygwin / X.
Звичайно VI та EMACS працюють над SSH, але коли я бігаю вдома, іноді хочеться більше. Я використовую ssh -X для запуску копії Eclipse! Якщо ваш сервер більш потужний, ніж ваш ноутбук, у вас GUI сидить прямо на своєму ноутбуку, але компіляції виконуються на вашому сервері, тому не турбуйтеся про завантаження системи.
Запуск у пакетних файлах
(тобто означає запустити локальний пакетний файл, який "робить речі" для інших систем):
Дві речі поєднуються, щоб зробити це крутим. Перше - ви можете усунути підказки пароля, використовуючи (більш захищені) ключі шифрування. По-друге, ви можете вказати команду на SSH CLI. Я використовував це якимись цікавими способами - як, наприклад, коли компіляція виходить з ладу на віддаленому сервері, я б запустив SSH на свій комп'ютер і відтворив звуковий файл)
Пам'ятайте, що ви можете перенаправляти вихід з віддаленої команди та використовувати його у вашому локальному пакетному файлі, щоб ви також могли локально підключити компіляцію, що працює на вашому сервері.
Вбудований в Mac
І сервер, і клієнт вбудовані в Mac і Linux. Що стосується Mac та Ubuntu, увімкнути сервер так само просто, як знайти потрібний прапорець.
На комп'ютер встановіть cygwin або cygwin / X (cygwin / X дозволить вам переслати х-віконний висновок зі своєї машини Linux на ваш ПК з Windows - він встановить X-сервер)
Важливі поради / конфігураційний файл
Ніколи не використовуйте порт 22 на брандмауері. Ви отримаєте багато спроб злому, це просто не варто. Просто попросіть ваш брандмауер перенести інший порт на ваш сервер.
Існують великі параметри конфігурації, які дозволяють значно спростити свої команди ssh. Ось приклад моєї роботи:
Host home
hostname billshome.hopto.org
Port=12345
user=bill
LocalForward=localhost:1025 mac:22
Коли я набираю "ssh home" (нічого іншого), він діє так, ніби я набрав:
ssh -p 12345 bill@billshome.hopto.org
а потім пересилає мій локальний порт 1025 до системи "mac" вдома. Причиною цього є те, що у мене є ще один запис у моєму файлі:
Host mac
hostname localhost
port=1025
так що після того, як я зробив "ssh home" і все ще відкрив вікно, я можу набрати "ssh mac", і комп'ютер на роботі тут фактично спробує підключитися до власного порту 1025, який був перенаправлений до "mac: 22 "іншою командою, тому він підключиться до мого Mac вдома через брандмауер.
Редагувати - класний сценарій!
Я викопав старий сценарій, який я просто люблю - довелося повернутися і опублікувати його для всіх, хто може зацікавити. Сценарій називається "authMe"
#!/bin/bash
if [ ! -f ~/.ssh/id_dsa.pub ]
then
echo 'id_dsa.pub does not exist, creating'
ssh-keygen -tdsa
fi
ssh $1 'cat >>.ssh/authorized_keys' <~/.ssh/id_dsa.pub
Якщо цей скрипт у вашому домашньому каталозі є хостом, до якого ви можете підключитися (через ssh), ви можете ввести "./authMe hostName".
Якщо необхідно, він створить для вас відкритий / приватний ключ, тоді він перейде на іншу машину і скопіює ваш відкритий ключ (команда ssh запропонує вам ввести пароль ...)
Після цього команда SSH більше не запитуватиме ваш пароль під час приєднання до цієї віддаленої системи, вона використовуватиме відкритий / приватний ключ.
Якщо ваш віддалений комп'ютер не завжди захищений, вам слід подумати про встановлення "парольної фрази" при появі запиту.
Ви також можете налаштувати ssh-сервер на дальньому кінці, щоб не дозволяти текстові паролі (лише ключі) для додаткової безпеки.