﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://schneegans.de/dtd/xhtml1-strict.dtd"[]><html lang="de" xml:lang="de" xsi:schemaLocation="http://www.w3.org/1999/xhtml http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><head><meta name="ROBOTS" content="NOINDEX, NOFOLLOW" /><title>Upload per SSH</title><link href="http://schneegans.de/xp/?url=http%3A%2F%2Fschneegans.de%2Fstyle%2F&amp;ct=application%2Fxml" rel="Stylesheet" type="text/css" /></head><body><table id="DankeThilo" style="border-collapse: collapse; margin: 20px auto; background-color: #EEE; border: 5px #EEA000 solid; padding: 10px;"><tr style="border: none;"><td rowspan="1" colspan="1" style="border:none; text-align: center; padding: 20px; font-size: 6em; font-weight: bold; color: #EEA000;">Danke, Thilo!</td></tr><tr style="border: none;"><td rowspan="1" colspan="1" style="border:none; text-align: right; padding: 3px;"><a shape="rect" href="http://schneegans.de/xp/?url=http%3A%2F%2Fwww.steinhoefel.de%2Fblog%2F2010%2F09%2Fweitermachen-thilo.html&amp;ct=application%2Fxml" style="text-decoration: none;" class="Offsite">...</a></td></tr></table><div class="Header"> <h1>Upload per SSH</h1> <p class="Breadcrumb">» <a shape="rect" href="http://schneegans.de/xp/?url=http%3A%2F%2Fschneegans.de%2F&amp;ct=application%2Fxml">schneegans.de</a> » <a shape="rect" href="http://schneegans.de/xp/?url=http%3A%2F%2Fschneegans.de%2Ffrontpage%2F&amp;ct=application%2Fxml">Microsoft FrontPage</a> » <a shape="rect" href="http://schneegans.de/xp/?url=http%3A%2F%2Fschneegans.de%2Ffrontpage%2Fvba%2F&amp;ct=application%2Fxml">FrontPage und VBA</a> » Upload per SSH</p> <div id="_ctl0_NewsgroupAnnouncement" style="color: #B22; border: thin solid #B22; padding: 5px;"> <p>Microsoft hat angekündigt, seine öffentlichen Newsgroups (<strong>microsoft.public.de.*</strong>) <a shape="rect" href="http://schneegans.de/xp/?url=http%3A%2F%2Fpatch-info.de%2Fartikel%2F2010%2F05%2F05%2F849&amp;ct=application%2Fxml" class="Offsite">abzuschalten</a>. Die beiden von mir betreuten Gruppen <strong>microsoft.public.de.frontpage</strong> und <strong>microsoft.public.de.expression.web</strong> werden bereits zum 1. Juni 2010 geschlossen.</p> <p>Ich empfehle meinen Besuchern sowie allen Anwendern von FrontPage und Expression Web, in die deutschsprachige Webautoren-Newsgroup <strong>de.comm.infosystems.www.authoring.misc</strong> zu wechseln. Beachten Sie auch meine <a shape="rect" href="http://schneegans.de/xp/?url=http%3A%2F%2Fgroups.google.com%2Fgroup%2Fmicrosoft.public.de.frontpage%2Fmsg%2Fc1e8d3bbf0542ddd&amp;ct=application%2Fxml" class="Offsite">Ankündigung in den Newsgroups</a>.</p> </div> <ul class="Navigation"><li><a shape="rect" href="http://schneegans.de/xp/?url=http%3A%2F%2Fschneegans.de%2Ffrontpage%2Fvba%2Fssh%2Fpsftp.bas&amp;ct=application%2Fxml">Download des Moduls „psftp.bas“</a></li></ul> </div><div class="Content"> <p class="Summary">Mit dem hier vorgestellten VBA-Makro kann FrontPage 2002 auch über <a shape="rect" href="http://schneegans.de/xp/?url=http%3A%2F%2Fwww.snailbook.com%2Fdocs%2Fsftp.txt&amp;ct=application%2Fxml" class="Offsite">SFTP</a> publizieren.</p> <p>In FrontPage 2002 kann man bequem per Kontextmenü in der Ordnerliste <em class="Menupath"><span>Markierte Dateien veröffentlichen...</span></em>. Das funktioniert über HTTP, wenn auf einen Server mit FrontPage-Servererweiterungen publiziert wird, sowie über FTP. Ein wesentlicher Nachteil von FTP ist, daß Benutzername und Kennwort unverschlüsselt übermittelt werden. Das neue SFTP vermeidet diese Schwachstelle, indem es auf einer SSH-Verbindung aufsetzt. FrontPage unterstützt SFTP nicht direkt, mittels VBA läßt sich diese Funktionalität jedoch integrieren, so daß SFTP in FrontPage ebenso komfortabel zu verwenden ist wie HTTP oder FTP.</p> <p><a shape="rect" href="http://schneegans.de/xp/?url=http%3A%2F%2Fwww.chiark.greenend.org.uk%2F~sgtatham%2Fputty%2F&amp;ct=application%2Fxml" class="Offsite">PuTTY</a> ist ein komfortabler und kostenloser SSH-Client für Windows. PuTTY enthält auch einen SFTP-Client namens PSFTP. Dieser läßt sich per Batchdatei steuern. Mein VBA-Makro erstellt diese Batchdatei aus den in der Ordnerliste markierten Dateien und Ordnern und startet PSFTP.</p> <h2>Installation</h2> <ul><li>Installieren Sie PuTTY. Am besten installieren Sie das <a shape="rect" href="http://schneegans.de/xp/?url=http%3A%2F%2Fthe.earth.li%2F~sgtatham%2Fputty%2Flatest%2Fx86%2Fputty.zip&amp;ct=application%2Fxml" class="Offsite">komplette Paket</a>.</li><li>Laden Sie die VBA-Modul <a shape="rect" href="http://schneegans.de/xp/?url=http%3A%2F%2Fschneegans.de%2Ffrontpage%2Fvba%2Fssh%2Fpsftp.bas&amp;ct=application%2Fxml">psftp.bas</a> und <a shape="rect" href="http://schneegans.de/xp/?url=http%3A%2F%2Fschneegans.de%2Ffrontpage%2Fvba%2Fprocess-handling.bas&amp;ct=application%2Fxml">process-handling.bas</a> herunter und importieren Sie sie im Visual Basic-Editor von FrontPage.</li><li>Das Makro verwendet das Dictionary- und das FileSystem-Objekt. Sie müssen deshalb im VBA-Editor über <em class="Menupath"><span>Extras</span> <span>→ Verweise</span></em> einen Verweis auf die <em class="Name">„Microsoft Scripting Runtime“</em> einrichten.</li></ul> <h2>Konfiguration</h2> <p>Im Quelltext des Moduls finden Sie die Konstanten <code>PSFTP_PATH</code> und <code>PSFTP_BATCH</code>. <code>PSFTP_PATH</code>  muß den kompletten Pfad zur Datei <code>psftp.exe</code> enthalten. Das Makro erstellt die in <code>PSFTP_BATCH</code> angegebene Batchdatei, die dann von PSFTP abgearbeitet wird.</p> <p><code>PSFTP_PATH</code> und <code>PSFTP_BATCH</code> betreffen alle Webs. Zusätzlich gibt es mehrere Parameter, die jeweils für ein Web gelten. Das Makro fragt sie beim ersten Start automatisch ab, später können Sie sie unter <em class="Menupath"><span>Extras</span> <span>→ Webeinstellungen...</span> <span>→ Parameter</span></em> einsehen und ggf. ändern:</p> <img alt="Screenshot des Dialogfeldes Webeinstellungen in FrontPage." class="Screenshot" height="352" src="http://schneegans.de/frontpage/vba/ssh/web-parameter.png" width="418" /> <table summary="Auflistung der vom Makro verwendeten Parameter."><tr><td rowspan="1" colspan="1"><code>psftp_session</code></td><td rowspan="1" colspan="1">In PuTTY können Sie Verbindungsparameter in sog. Sessions speichern. Den Namen einer solchen Session können Sie hier angeben; dies ist die empfohlene Methode. Die Einstellungen <code>psftp_user</code>, <code>psftp_host</code> und <code>psftp_port</code> sind dann wirkungslos, klicken Sie bei der entsprechenden Abfrage einfach auf <em class="Name">„Abbrechen“</em>.</td></tr><tr><td rowspan="1" colspan="1"><code>psftp_user</code></td><td rowspan="1" colspan="1">Benutzername Ihres SSH-Accounts.</td></tr><tr><td rowspan="1" colspan="1"><code>psftp_host</code></td><td rowspan="1" colspan="1">Name des SSH-Servers.</td></tr><tr><td rowspan="1" colspan="1"><code>psftp_port</code></td><td rowspan="1" colspan="1">Port, auf dem der SSH-Server läuft, meistens 22 oder 24.</td></tr><tr><td rowspan="1" colspan="1"><code>psftp_root</code></td><td rowspan="1" colspan="1">Der Pfad zu Ihren Webseiten auf dem SSH-Server. Wenn Ihr Web bspw. in <code>C:\Eigene Webs\Mein Web\</code> gespeichert ist und Sie für <code>psftp_root</code> <code>/home/sites/site52/web</code> angeben, wird <code>C:\Eigene Webs\Mein Web\index.html</code> als <code>/home/sites/site52/web/index.html</code> auf den Server kopiert.</td></tr><tr><td rowspan="1" colspan="1"> <p><code>psftp_file_permissions</code></p> </td><td rowspan="1" colspan="1">Zugriffsrechte für kopierte Dateien, bspw. <code>644</code>. Dieser Parameter muß meistens nicht angegeben werden.</td></tr><tr><td rowspan="1" colspan="1"> <p><code>psftp_dir_permissions</code></p> </td><td rowspan="1" colspan="1">Zugriffsrechte für erstellte Verzeichnisse, bspw. <code>755</code>. Dieser Parameter muß meistens nicht angegeben werden.</td></tr></table> <p>Die Prozedur <code>PSFTP_Selected()</code> können Sie mit einem Menüeintrag oder einem Button der Symbolleiste verknüpfen. Wählen Sie dann in der Ordnerliste einige Dateien und Ordner aus, und starten Sie das Makro. Das Kennwort fragt PSFTP selbst ab:</p> <img alt="Kennwortabfrage von PSFTP" class="Screenshot" height="331" src="http://schneegans.de/frontpage/vba/ssh/psftp-kennwort.png" width="668" /> </div><div class="Footer"> <em>URL:</em> http://schneegans.de/frontpage/vba/ssh/<br /><a shape="rect" href="http://schneegans.de/xp/?url=http%3A%2F%2Fschneegans.de%2Fsv%2F%3Furl%3Dhttp%3A%2F%2Fschneegans.de%2Ffrontpage%2Fvba%2Fssh%2F&amp;ct=application%2Fxml" hreflang="en" class="Offsite">XHTML überprüfen</a> · <a shape="rect" href="http://schneegans.de/xp/?url=http%3A%2F%2Fjigsaw.w3.org%2Fcss-validator%2Fvalidator%3Furi%3Dhttp%3A%2F%2Fschneegans.de%2Ffrontpage%2Fvba%2Fssh%2F&amp;ct=application%2Fxml" class="Offsite">CSS überprüfen</a> · <a shape="rect" href="http://schneegans.de/xp/?url=http%3A%2F%2Fschneegans.de%2Fxp%2F%3Furl%3Dhttp%3A%2F%2Fschneegans.de%2Ffrontpage%2Fvba%2Fssh%2F&amp;ct=application%2Fxml" class="Offsite">Als <code>application/xml</code> laden</a><address><em>Autor:</em> <a shape="rect" href="http://schneegans.de/xp/?url=http%3A%2F%2Fschneegans.de%2Fchristoph%2F&amp;ct=application%2Fxml">Christoph Schneegans</a> (<a shape="rect" href="mailto:Christoph%20Schneegans%20%3CChristoph@Schneegans.de%3E">Christoph@Schneegans.de</a>)</address> </div></body></html><!-- XHTML Proxy has successfully processed this page. -->