SSH!
SSH - это команда богов - я думаю, что это самая ценная команда для изучения. Параметры могут быть довольно пугающими, но мне кажется, что я постоянно учусь использовать новые параметры командной строки для SSH, которые я никогда не считал необходимыми. Возможно, я использовал их всех в этот момент.
Чем больше вы его используете, тем больше вы узнаете об этом. Вы можете использовать это, чтобы сделать некоторые изумительные вещи.
Примечание. ВСЕ эти вещи можно выполнять удаленно, без настройки на вашем сервере, за исключением запуска ssh-сервера.
Смонтировать файловую систему через интернет
искать в сети SSHFS
Вперед команды .
Протокол SVN + SSH - это Subversion от удаленного клиента до сервера, на котором не работает ни один DEAMON! Команда SVN запускает сервер через оболочку ssh и передает информацию туда и обратно по существующему каналу. Программа rsync делает то же самое, запускается на сервере без rsync deamon, запуская его через SSH. Легко написать свои собственные файлы bash, чтобы делать подобные трюки.
Цепочка для прохождения через брандмауэры
Я использую это все время, чтобы перепрыгнуть через мой Linux-сервер дома к моему Mac.
Переадресация портов:
кажется лишь умеренно полезной, пока вы не поймете, что можете прыгать через домашний брандмауэр и настраивать маршрутизатор дома с работы, как если бы вы делали это из домашней сети).
Форвард Х запросов:
Это еще один удивительный. Если на удаленной системе запущен X-сервер или нет, вы можете запустить программу X-Windows, и на вашем локальном экране появится окно. Просто используйте переключатель -X, и все!
Поскольку на удаленном сервере не требуется запуск X-сервера, нагрузка на процессор на вашем сервере минимальна, у вас может быть сервер TINY Linux, который обслуживает огромные приложения на вашем мощном игровом ПК под управлением Windows и Cygwin / X.
Конечно, VI и EMACS работают по SSH, но когда я бегу домой, иногда мне хочется большего. Я использую ssh -X для запуска копии Eclipse! Если ваш сервер более мощный, чем ваш ноутбук, у вас прямо на ноутбуке установлен графический интерфейс, но компиляция выполняется на вашем сервере, поэтому не беспокойтесь о загрузке системы.
Запустить в пакетных файлах
(имеется в виду запуск локального командного файла, который «делает вещи» в других системах):
Две вещи объединяются, чтобы сделать это классным. Во-первых, вы можете исключить запросы пароля, используя (более безопасные) ключи шифрования. Во-вторых, вы можете указать команду в интерфейсе командной строки SSH. Я использовал это несколькими интересными способами: например, когда на удаленном сервере происходит сбой компиляции, я вставляю SSH в компьютер и воспроизводю звуковой файл).
Помните, что вы можете перенаправить вывод удаленной команды и использовать его в своем локальном пакетном файле, чтобы вы могли также локально настроить компиляцию, выполняемую на вашем сервере.
Встроенный в Mac
И сервер, и клиент встроены в Mac и Linux. В случае Mac и Ubuntu включить сервер так же просто, как найти нужный флажок.
На ПК установите cygwin или cygwin / X (cygwin / X позволит вам перенаправить вывод x-window с вашего компьютера с 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 больше не должна запрашивать ваш пароль при подключении к этой удаленной системе, она будет использовать пару открытых / закрытых ключей.
Если ваш удаленный компьютер не всегда безопасен, вам следует подумать об установке «парольной фразы» при появлении запроса.
Вы также можете настроить сервер ssh на дальнем конце, чтобы запретить использование текстовых паролей (только ключей) для дополнительной безопасности.