вопросы о веб-программировании для начинающих - PullRequest
0 голосов
/ 10 февраля 2011

Итак, я прошел несколько курсов по программированию (объектно-ориентированный, веб), но у меня никогда не было «практических» проектов, в которых это не относится к кодированию.

Теперь я пытаюсь выяснить, что это за SSH, я даже не могу понять, какой клиент использовать, поэтому сейчас выбрал filezilla.

У меня вопрос: где я могу прочитать больше об этих терминах, таких как порты и прочее, таким образом, чтобы я не учился бесцельно.

Спасибо!

Ответы [ 5 ]

6 голосов
/ 10 февраля 2011

По сути, SSH - это способ указать другому компьютеру, что делать через Интернет.Вы можете выполнить любую рекомендацию, которую имеет удаленная система, и у вашего пользователя есть разрешение на.

Интернет

Интернет работает по ряду протоколов, совместно именуемых TCP / IP.TCP / IP определяет способ поиска и адресации отдельных компьютеров (IP) и способ связи между ними (TCP).

Вы можете рассматривать компьютеры в Интернете как большую коллекцию офисных зданий, расположенных близко друг к другу.,В каждом офисе одинаковое количество окон: 65535. Офисы (компьютеры) обмениваются данными, связывая каналы между окнами (портами).Каждый канал имеет два конца, называемых сокетами.Каждый сокет связан с портом на соответствующем компьютере.Мы отправляем данные туда и обратно, а затем соединение закрывается.

Клиент / Сервер

В Интернете есть два типа компьютеров: клиенты и серверы.Клиенты запрашивают информацию, а серверы предоставляют ее.Порты 1-1024 зарезервированы для серверов, 1 порт на протокол.Полный список здесь , и, как вы можете видеть, он не без споров.

Допустим, вы посещаете веб-сайт

Ваш браузер, клиентская программа, видитчто вы ввели «stackoverflow.com» и, используя DNS, обнаруживает, что stackoverflow.com - это номер компьютера 64.34.119.12.Это его IP-адрес.Он позволяет вашему компьютеру найти сеть, на которой расположен stackoverflow.com, направить ее и установить соединение с веб-сервером Stack Overflow.Веб-сервер - это программа, которая принимает запросы клиентов от браузера, подобного вашему.

Они говорят по протоколу, называемому HTTP - он позволяет вашему браузеру запрашивать страницу, определяемую URL-адресом.Сервер видит запрос, запускает программу для создания веб-страницы (или получает файл HTML, изображение или любой другой файл) и отправляет результат обратно в браузер.Порт 80 был зарезервирован для HTTP.Это означает, что ваш компьютер выбирает случайный порт для подключения, и подключается к порту # 80 на сервере.

Unix и оболочка

Большинство веб-сайтов(Интернет, , даже ) работает на ОС под названием Linux (вариант Unix), а не на чем-то вроде Windows.Системы Unix обладают интерфейсом командной строки, в котором запущена программа, называемая «оболочкой», которая является прямым интерфейсом к системе.Оболочка принимает ввод, по одной команде за раз.Вы вводите текст, и он выплевывает вывод команды.

Secure Shell

SSH позволяет вам делать это безопасно.Весь трафик данных шифруется с использованием хорошо изученной опубликованной криптографической системы с «открытым ключом».(На самом деле, это была главная новость, когда была обнаружена уязвимость в поддерживаемой схеме шифрования, см. эти рекомендации ).

SSH - это протокол, обычно работающий на порте22. Любой, у кого есть компьютер в Интернете (не за брандмауэром), может запустить SSH-сервер и разрешить пользователям подключаться к нему и выполнять команды.

Большинство системных администраторов и разработчиков программного обеспечения, использующих Unix насервер использует SSH для конфигурирования, управления и загрузки программ на этот сервер (расположенный где-то в каком-либо центре обработки данных).

Подробнее

Существует множество других деталей.Любой термин или аббревиатура выше могут быть напечатаны в Википедии для довольно полной информации.Существует множество книг по Unix, сетям и веб-программированию.

1 голос
/ 11 февраля 2011

Выбор ОС
Сначала вы должны сделать выбор между двумя мирами (MS или Linux). При условии, что сообщество Linux почему-то значительно менее неохотно делится объяснениями. Кроме того, вы будете терять меньше времени, выбирая один или другой, избегая удивления одними и теми же вопросами дважды, с разными ответами в зависимости от того, какую ОС вы выбрали.

Я испытал оба, начиная искать решения в мире MS, которые я знал. Большая ошибка, потеря времени. Потом я слишком поздно перешел в мир Linux. Поэтому я бы посоветовал сразу перейти к Linux OS для обучения. Действительно много раздач для этого. Я бы посоветовал Debian (открытое, удобное для пользователя, простое, безопасное, огромное сообщество), но вы получите столько же предложений, сколько администратору.

Понимание ОС
http://www.linuxfromscratch.org/lfs/
http://www.ibm.com/developerworks/library/l-bash.html
http://tldp.org/LDP/abs/html/

Отдельные вопросы по SSH
Это во многом зависит от системы, которую вы выберете, но вы можете легко создать небольшой клиент и небольшой сервер, затем настроить оба и использовать ssh. Ваши 2 сервера могут быть даже размещены на одной машине, локально, если хотите. Затем вы узнаете, как настроить сторону ssh-клиента (часто называемую ssh_config) и сторону сервера ssh (часто называемую sshd_config, где «d» обозначает демон).

Здесь вы можете найти объяснения по ssh для обоих миров:
http://support.suso.com/supki/SSH_Tutorial_for_Linux

Некоторые ключевые слова для ваших поисков в Google
List_of_TCP_and_UDP_port_numbers
ssh-keygen: зашифрованные ключи (приватные / открытые),
ssh-add ssh agent
Брелок Gentoo

и позже, но скоро, если вы самостоятельно администрируете свой сервер
Два основных:
1) iptables
Вы можете начать с это , а затем продолжить с это

2) fail2ban
это дополнительный инструмент, для которого вы легко найдете множество документов ...

Веселитесь: -)

РЕДАКТИРОВАТЬ: вы можете легко испытать машину Linux, размещенную в ОС Windows, используя виртуализацию (virtualbox, vm-ware ..). Это безопасное начало и хорошая окупаемость инвестиций в это время. Это позволит вам разместить столько компьютеров (например, один сервер Linux и один клиент Linux), сколько вы хотите, в пределах вашей комнаты HD.

1 голос
/ 10 февраля 2011

SSH изначально является безопасной заменой telnet.Потребность в SSH возникла из-за того, что telnet не поддерживает шифрование, и поэтому все (команды, выходные данные и пароль) было ясно видно в сети для всеобщего обозрения.

Потому что в начале шифрование SSH (основано наобмен ключами) должен был быть надежным (и это действительно было заметное улучшение) и был открытым исходным кодом, он быстро развивался и было добавлено несколько расширений протокола, особенно в области удаленного управления файлами и их передачи.Кроме того, SSH используется в настройках туннелирования и переадресации портов.

В области копирования файлов есть несколько параметров.

  1. SCP: cp (копия).Вдохновленный rcp, ранним расширением для передачи файлов в ssh.
  2. SFTP: SSH File Transfer Protocol, более новым расширением SSH для поддержки копирования и просмотра файлов (но не совсем как FTP с 2 портами).Это более функционально, чем scp и ftp.Думайте об этом как о протоколе удаленной файловой системы (однако, немного медленнее, чем scp).
  3. FTPS: FTP через TLS / SSL.Требуется 2 порта, таких как ftp, один для команды и один для данных.Оба соединения могут быть зашифрованы.
  4. Безопасный FTP.Реальный FTP настроен по SSH.

Сайт, к которому вам нужно будет подключиться, вероятно, предлагает SFTP.Вам просто нужно объявить конфигурацию подключения к удаленному серверу в менеджере сайта Filezilla.Вам нужно будет указать IP-адрес или имя сервера, порт сервера SSH, обычно 22, но есть и другие возможности (вы должны были предоставить эту информацию) и выбрать sftp в качестве типа сервера).Когда соединение будет установлено, примите открытый ключ, и это должно быть.

Затем вы можете оставить свои устройства на удаленном сервере.

0 голосов
/ 11 февраля 2011

Если вы хотите узнать подробности о SSH, могу я посоветовать вам эту книгу SSH: Безопасная оболочка. Полное руководство

Смотрите здесь для получения дополнительной информации: http://www.snailbook.com/

Я прочитал книгу и многому научился. В ней рассказывается о настройке серверов, клиентов, ключевых агентов и различных (практических) приложений.

0 голосов
/ 10 февраля 2011

Полагаю, вам нужно изучить сценарии оболочки. Я рекомендую эту книгу .
Filezilla - клиент FTP. Попробуйте Putty - бесплатный SSH клиент. И, конечно, вам нужен сервер Linux.

...