[svnbook commit] r1544 - in trunk/src/nb: . book
sunny256
svnbook-dev at red-bean.com
Wed Jul 13 09:12:58 CDT 2005
Author: sunny256
Date: Wed Jul 13 09:12:57 2005
New Revision: 1544
Modified:
trunk/src/nb/TRANSLATION-STATUS
trunk/src/nb/book/ch06.xml
Log:
Norwegian svnbook: Translated two subsections.
* src/nb/TRANSLATION-STATUS
ch06.xml to 42%.
* src/nb/book/ch06.xml
(svn.serverconfig.svnserve): Section finished.
Modified: trunk/src/nb/TRANSLATION-STATUS
==============================================================================
--- trunk/src/nb/TRANSLATION-STATUS (original)
+++ trunk/src/nb/TRANSLATION-STATUS Wed Jul 13 09:12:57 2005
@@ -35,7 +35,7 @@
2.1.2. In progress
- book/ch06.xml (30%) -- sunny256
+ book/ch06.xml (42%) -- sunny256
2.1.3. Needs update
Modified: trunk/src/nb/book/ch06.xml
==============================================================================
--- trunk/src/nb/book/ch06.xml (original)
+++ trunk/src/nb/book/ch06.xml Wed Jul 13 09:12:57 2005
@@ -1482,8 +1482,12 @@
<!-- =============================================================== -->
<sect2 id="svn.serverconfig.svnserve.sshauth">
+ <!-- @ENGLISH {{{
<title>SSH authentication and authorization</title>
+ @ENGLISH }}} -->
+ <title>Autentisering og autorisasjon via SSH</title>
+ <!-- @ENGLISH {{{
<para><command>svnserve</command>'s built-in authentication can
be very handy, because it avoids the need to create real
system accounts. On the other hand, some administrators
@@ -1491,11 +1495,27 @@
place. In these situations, all of the project's users
already have system accounts and the ability to <quote>SSH
into</quote> the server machine.</para>
+ @ENGLISH }}} -->
+ <para><command>svnserve</command>s innebyggede autentisering kan
+ være veldig grei å ha med å gjøre, fordi man ikke trenger å
+ opprette virkelige brukerkontoer på systemet.
+ På den annen side har noen administratorer allerede et
+ veletablert rammeverk for SSH-autentisering på plass.
+ I disse situasjonene har alle brukerne på prosjektet allerede
+ systemkontoer og muligheten til å koble seg til via SSH på
+ tjenermaskinen.</para>
+ <!-- @ENGLISH {{{
<para>It's easy to use SSH in conjunction with
<command>svnserve</command>. The client simply uses the
<literal>svn+ssh://</literal> URL schema to connect:</para>
+ @ENGLISH }}} -->
+ <para>Det er enkelt å bruke SSH sammen med
+ <command>svnserve</command>.
+ Klienten bruker ganske enkelt URL-skjemaet
+ <literal>svn+ssh://</literal> for å koble seg til:</para>
+<!-- @ENGLISH {{{
<screen>
$ whoami
harry
@@ -1508,7 +1528,21 @@
baz
…
</screen>
+ at ENGLISH }}} -->
+<screen>
+$ whoami
+harry
+
+$ svn list svn+ssh://tjener.example.com/repos/prosjekt
+harry at tjener.example.com's password: *****
+foo
+bar
+baz
+…
+</screen>
+
+ <!-- @ENGLISH {{{
<para>In this example, the Subversion client is invoking a local
<command>ssh</command> process, connecting to
<literal>host.example.com</literal>, authenticating as the
@@ -1523,7 +1557,23 @@
user <literal>harry</literal>, and if the client performs a
commit, the authenticated username will be attributed as the
author of the new revision.</para>
+ @ENGLISH }}} -->
+ <para>I dette eksempelet starter Subversionklienten en lokal
+ <command>ssh</command>-prosess, kobler seg opp mot
+ <literal>tjener.example.com</literal>, autentiserer seg som
+ brukeren <literal>harry</literal>, starter en privat
+ <command>svnserve</command>-prosess på den fjerntliggende
+ maskinen som kjører som brukeren <literal>harry</literal>.
+ <command>svnserve</command>-kommandoen blir startet i
+ tunnelmodus (<option>-t</option>) og nettverksprotokollen som
+ den bruker blir <quote>lagt i tunnel</quote> over den krypterte
+ forbindelsen via <command>ssh</command>, tunnelagenten.
+ <command>svnserve</command> vet at den kjører som brukeren
+ <literal>harry</literal>, og hvis klienten foretar en
+ innlegging, vil det autentiserte brukernavnet bli kreditert som
+ forfatteren av den nye revisjonen.</para>
+ <!-- @ENGLISH {{{
<para>The important thing to understand here is that the
Subversion client is <emphasis>not</emphasis> connecting to a
running <command>svnserve</command> daemon. This method of
@@ -1532,7 +1582,17 @@
<command>ssh</command> to spawn a temporary
<command>svnserve</command> process, which then terminates
when the network connection is closed.</para>
+ @ENGLISH }}} -->
+ <para>Den viktige tingen å forstå her er at Subversionklienten
+ <emphasis>ikke</emphasis> kobler seg til en kjørende
+ <command>svnserve</command>-daemon.
+ Denne tilkoblingsmetoden krever ingen daemon, og den legger
+ heller ikke merke til om noen slike finnes.
+ Den stoler fullt og helt på evnen til <command>ssh</command> å
+ starte en midlertidig <command>svnserve</command>-prosess, som
+ avsluttes når nettverksforbindelsen lukkes.</para>
+ <!-- @ENGLISH {{{
<para>When using <literal>svn+ssh://</literal> URLs to access a
repository, remember that it's the <command>ssh</command>
program prompting for authentication, and
@@ -1548,7 +1608,25 @@
use a separate SSH password-caching tool like
<command>ssh-agent</command> on a Unix-like system, or
<command>pageant</command> on Windows.</para>
+ @ENGLISH }}} -->
+ <para>Når du bruker <literal>svn+ssh://</literal>-URLer til å
+ aksessere et depot, husk at det er
+ <command>ssh</command>-programmet som spør etter autentisering,
+ og <emphasis>ikke</emphasis> <command>svn</command>-klienten.
+ Dette betyr at det er ingen automatisk lagring av passord (se
+ <xref linkend="svn.serverconfig.netmodel.credcache"/>).
+ Subversionklienten foretar ofte flere tilkoblinger til depotet,
+ selv om brukere vanligvis ikke legger merke til dette på grunn
+ av funksjonen som lagrer passord.
+ Men ved bruk av <literal>svn+ssh://</literal> kan brukere bli
+ plaget med at <command>ssh</command> spør etter passord for hver
+ eneste utgående tilkobling.
+ Løsningen er å bruke et separat passordlagringssystem for SSH
+ som for eksempel <command>ssh-agent</command> på et
+ Unix-lignende system eller <command>pageant</command> i
+ Windows.</para>
+ <!-- @ENGLISH {{{
<para>When running over a tunnel, authorization is primarily
controlled by operating system permissions to the repository's
database files; it's very much the same as if Harry were
@@ -1562,7 +1640,22 @@
still be used to block access, by simply setting
<literal>auth-access = read</literal> or <literal>auth-access
= none</literal>.</para>
+ @ENGLISH }}} -->
+ <para>Når tilkobling skjer gjennom en tunnel, blir autorisering
+ for databasefilene i depotet hovedsaklig kontrollert av
+ tilgangsrettigheter i operativsystemet; det er mye det samme som
+ om Harry aksesserer depotet direkte via en <!-- ¤ Skal den
+ ekstra slashen være der? --><literal>file:///</literal>-URL.
+ Hvis flere systembrukere skal aksessere depotet direkte, vil du
+ kanskje plassere dem i en felles gruppe, og alt du trenger å
+ tenke på er å være forsiktig med <literal>umask</literal>.
+ (Pass på å lese <xref linkend="svn.serverconfig.multimethod"/>.)
+ Men selv i tilfellet med bruk av tunnel kan
+ <filename>svnserve.conf</filename> bli brukt til å blokkere
+ tilgang ved å sette <literal>auth-access = read</literal> eller
+ <literal>auth-access = none</literal>.</para>
+ <!-- @ENGLISH {{{
<para>You'd think that the story of SSH tunneling would end
here, but it doesn't. Subversion allows you to create custom
tunnel behaviors in your run-time <filename>config</filename>
@@ -1571,12 +1664,22 @@
<literal>[tunnels]</literal> section of your
<filename>config</filename> file, simply define it like
this:</para>
+ @ENGLISH }}} -->
+ <para>Man skulle tro at historien om SSH ender her, men det gjør
+ den ikke.
+ Subversion lar deg opprette tilpasset tunneloppførsel i <!-- ¤
+ run-time -->kjøringsfilen <filename>config</filename> (se <xref
+ linkend="svn.advanced.confarea"/>).
+ I <literal>[tunnels]</literal>-seksjonen i
+ <filename>config</filename>-filen kan du enkelt definere det på
+ denne måten:</para>
<screen>
[tunnels]
rsh = rsh
</screen>
+ <!-- @ENGLISH {{{
<para>And now, you can use this new tunnel definition by using a
URL schema that matches the name of your new variable:
<literal>svn+rsh://host/path</literal>. When using the new
@@ -1587,12 +1690,26 @@
will also include that in its command (<command>rsh
username at host svnserve -t</command>.) But you can define new
tunneling schemes to be much more clever than that:</para>
+ @ENGLISH }}} -->
+ <para>Og nå kan du bruke denne nye tunneldefinsjonen ved å bruke
+ et URL-skjema som samsvarer med navnet på den nye variabelen:
+ <literal>svn+rsh://tjener/sti</literal>.
+ Ved bruk av det nye URL-skjemaet vil Subversionklienten faktisk
+ kjøre kommandoen <command>rsh tjener svnserve -t</command> <!--
+ ¤ -->i bakgrunnen.
+ Hvis du inkluderer et brukernavn i URLen (for eksempel
+ <literal>svn+rsh://brukernavn@tjener/sti</literal>), vil
+ klienten også ta dette med i kommandoen (<command>rsh
+ brukernavn at tjener svnserve -t</command>).
+ Men du kan definere nye tunnelskjema til å være mye mer
+ avanserte enn som så:</para>
<screen>
[tunnels]
joessh = $JOESSH /opt/alternate/ssh -p 29934
</screen>
+ <!-- @ENGLISH {{{
<para>This example demonstrates a couple of things. First, it
shows how to make the Subversion client launch a very specific
tunneling binary (the one located at
@@ -1602,7 +1719,17 @@
particular SSH binary with <option>-p 29934</option> as
arguments—useful if you want the tunnel program to
connect to a non-standard port.</para>
+ @ENGLISH }}} -->
+ <para>Dette eksempelet demonstrerer et par ting.
+ For det første viser det hvordan du lar Subversionklienten kjøre
+ en spesifikk binærfil som oppretter tunnelen (den som ligger som
+ <filename>/opt/alternate/ssh</filename> med spesifikke valg.
+ I dette tilfellet vil det å aksessere en
+ <literal>svn+joessh://</literal>-URL starte denne SSH-binærfilen
+ med <option>-p 29934</option> som parameter – nyttig hvis du vil
+ at tunnelprogrammet skal koble seg til en ustandard port.</para>
+ <!-- @ENGLISH {{{
<para>Second, it shows how to define a custom environment
variable that can override the name of the tunneling program.
Setting the <literal>SVN_SSH</literal> environment variable is
@@ -1616,13 +1743,32 @@
variable—<command>$JOESSH</command> would be executed
instead of <command>/opt/alternate/ssh -p
29934</command>.</para>
+ @ENGLISH }}} -->
+ <para>For det andre viser det hvordan en tilpasset miljøvariabel
+ kan overstyre navnet på et tunnelprogram.
+ Det å sette miljøvariabelen <literal>SVN_SSH</literal> er en
+ behagelig måte å overstyre den vanlige SSH-tunnelagenten.
+ Men hvis du må ha flere forskjellige overstyringer for
+ forskjellige tjenere, der hver av dem kanskje kontakter en
+ forskjellig port eller sender et annet sett med parametere til
+ SSH, kan du bruke mekanismen som er demonstrert i dette
+ eksempelet.
+ Hvis vi nå setter miljøvariabelen <literal>JOESSH</literal> til
+ noe, vil innholdet av denne variabelen overstyre hele innholdet
+ av tunnelvariabelen – <command>$JOESSH</command> vil bli kjørt
+ istedenfor <command>/opt/alternate/ssh -p
+ 29934</command>.</para>
</sect2>
<!-- =============================================================== -->
<sect2 id="svn.serverconfig.svnserve.sshtricks">
+ <!-- @ENGLISH {{{
<title>SSH configuration tricks</title>
+ @ENGLISH }}} -->
+ <title>Konfigurasjonstriks i SSH</title>
+ <!-- @ENGLISH {{{
<para>It's not only possible to control the way in which the
client invokes <command>ssh</command>, but also to control
the behavior of <command>sshd</command> on your server
@@ -1630,10 +1776,22 @@
exact <command>svnserve</command> command executed
by <command>sshd</command>, as well as how to have multiple
users share a single system account.</para>
+ @ENGLISH }}} -->
+ <para>Det er ikke bare mulig å kontrollere måten klienten starter
+ <command>ssh</command> på, men også å kontrollere oppførselen
+ til <command>sshd</command> på tjenermaskinen.
+ I denne seksjonen vil vi vise hvordan du kontrollerer den
+ eksakte <command>svnserve</command>-kommandoen som blir kjørt av
+ <command>sshd</command>, og også hvordan du får flere brukere
+ til å dele en enkel systemkonto.</para>
<sect3 id="svn.serverconfig.svnserve.sshtricks.setup">
+ <!-- @ENGLISH {{{
<title>Initial setup</title>
+ @ENGLISH }}} -->
+ <title>Innledende oppsett</title>
+ <!-- @ENGLISH {{{
<para>To begin, locate the home directory of the account
you'll be using to launch <command>svnserve</command>. Make
sure the account has an SSH public/private keypair
@@ -1641,52 +1799,117 @@
authentication. Password authentication will not work,
since all of the following SSH tricks revolve around using
the SSH <filename>authorized_keys</filename> file.</para>
+ @ENGLISH }}} -->
+ <para>Til å begynne med, finn fram til hjemmekatalogen for
+ kontoen som du skal bruke til å kjøre
+ <command>svnserve</command>.
+ Vær sikker på at kontoen har et offentlig/privat SSH-nøkkelpar
+ installert, og at brukeren kan logge inn via autentisering med
+ offentlig nøkkel.
+ Autentisering via passord vil ikke fungere, siden alle de
+ følgende SSH-triksene baserer seg på bruk av
+ <filename>authorized_keys</filename>-filen som brukes av
+ SSH.</para>
+ <!-- @ENGLISH {{{
<para>If it doesn't already exist, create the
<filename>authorized_keys</filename> file (on Unix,
typically <filename>~/.ssh/authorized_keys</filename>).
Each line in this file describes a public key that is
allowed to connect. The lines are typically of the
form:</para>
+ @ENGLISH }}} -->
+ <para>Hvis den ikke allerede finnes, opprett filen
+ <filename>authorized_keys</filename> (i Unix er den vanligvis
+ kalt <filename>~/.ssh/authorized_keys</filename>).
+ Hver linje i denne filen beskriver en offentlig nøkkel som får
+ lov til å koble seg til.
+ Linjene har vanligvis dette formatet:</para>
+<!-- @ENGLISH {{{
<screen>
ssh-dsa AAAABtce9euch.... user at example.com
</screen>
+ at ENGLISH }}} -->
+<screen>
+ ssh-dsa AAAABtce9euch.... bruker at example.com
+</screen>
+ <!-- @ENGLISH {{{
<para>The first field describes the type of key, the second
field is the uuencoded key itself, and the third field is a
comment. However, it's a lesser known fact that the entire
line can be preceded by a <literal>command</literal>
field:</para>
+ @ENGLISH }}} -->
+ <para>Det første feltet beskriver nøkkeltypen, det andre feltet
+ er selve den uuencodede nøkkelen, og det tredje feltet er en
+ kommentar.
+ En lite kjent funksjonalitet er at hele linjen kan bli
+ innledet av et <literal>command</literal>-felt:</para>
+<!-- @ENGLISH {{{
<screen>
command="program" ssh-dsa AAAABtce9euch.... user at example.com
</screen>
+ at ENGLISH }}} -->
+<screen>
+ command="program" ssh-dsa AAAABtce9euch.... bruker at example.com
+</screen>
+ <!-- @ENGLISH {{{
<para>When the <literal>command</literal> field is set, the
SSH daemon will run the named program instead of the
typical <command>svnserve -t</command> invocation that the
Subversion client asks for. This opens the door to a number
of server-side tricks. In the following examples, we
abbreviate the lines of the file as:</para>
+ @ENGLISH }}} -->
+ <para>Når <literal>command</literal>-feltet er definert, vil
+ SSH-daemonen kjøre det navngitte programmet istedenfor den
+ typiske <command>svnserve -t</command>-prosessen som
+ Subversionklienten spør etter.
+ Dette åpner døra til en rekke triks på tjenersiden.
+ I de følgende eksemplene forkorter vi linjene i filen
+ som:</para>
+<!-- @ENGLISH {{{
<screen>
command="program" TYPE KEY COMMENT
</screen>
+ at ENGLISH }}} -->
+<screen>
+ command="program" TYPE NØKKEL KOMMENTAR
+</screen>
</sect3>
<sect3 id="svn.serverconfig.svnserve.sshtricks.fixedcmd">
+ <!-- @ENGLISH {{{
<title>Controlling the invoked command</title>
+ @ENGLISH }}} -->
+ <title>Kontrollere den startede kommandoen</title>
+ <!-- @ENGLISH {{{
<para>Because we can specify the executed server-side command,
it's easy to name a specific <command>svnserve</command>
binary to run and to pass it extra arguments:</para>
+ @ENGLISH }}} -->
+ <para>Fordi vi kan spesifisere kommandoen som kjøres på
+ tjenersiden, er det lett å navngi en spesifikk
+ <command>svnserve</command>-binærfil som skal kjøres og levere
+ et ekstra parameter til den:</para>
+<!-- @ENGLISH {{{
<screen>
command="/path/to/svnserve -t -r /virtual/root" TYPE KEY COMMENT
</screen>
+ at ENGLISH }}} -->
+<screen>
+ command="/sti/til/svnserve -t -r /virtuell/rot" TYPE NØKKEL KOMMENTAR
+</screen>
+ <!-- @ENGLISH {{{
<para>In this example, <filename>/path/to/svnserve</filename>
might be a custom wrapper script
around <command>svnserve</command> which sets the umask (see
@@ -1698,30 +1921,68 @@
system, or simply to relieve the user of having to type an
absolute path in the <literal>svn+ssh://</literal>
URL.</para>
+ @ENGLISH }}} -->
+ <para>I dette eksempelet kan
+ <filename>/sti/til/svnserve</filename> være et spesiallaget
+ innkapslingsskript rundt <command>svnserve</command> som
+ setter umask-verdien (se <xref
+ linkend="svn.serverconfig.multimethod"/>).
+ Det viser også hvordan <command>svnserve</command> kan
+ forankres i en virtuell rotkatalog akkurat som man ofte gjør
+ når <command>svnserve</command> kjøres som en daemonprosess.
+ Dette kan gjøres enten ved å begrense adgangen til deler av
+ systemet, eller ganske enkelt spare brukeren for å måtte
+ skrive inn en absolutt sti i
+ <literal>svn+ssh://</literal>-URLen.</para>
+ <!-- @ENGLISH {{{
<para>It's also possible to have multiple users share a single
account. Instead of creating a separate system account for
each user, generate a public/private keypair for each
person. Then place each public key into
the <filename>authorized_users</filename> file, one per
- line, and use the <option>--tunnel-user</option>
+ line, and use the <option>-ﳢ-tunnel-user</option>
option:</para>
+ @ENGLISH }}} -->
+ <para>Det er også mulig å la flere brukere dele en enkel konto.
+ Istedenfor å lage en egen systemkonto for hver bruker, lag et
+ offentlig/privat nøkkelpar for hver person.
+ Legg deretter hver offentlig nøkkel inn i
+ <filename>authorized_users</filename>-filen, en per linje, og
+ bruk valget <option>--tunnel-user</option>:</para>
+<!-- @ENGLISH {{{
+<screen>
+ command="svnserve -t -ﳢ-tunnel-user=harry" TYPE1 KEY1 harry at example.com
+ command="svnserve -t -ﳢ-tunnel-user=sally" TYPE2 KEY2 sally at example.com
+</screen>
+ at ENGLISH }}} -->
<screen>
- command="svnserve -t --tunnel-user=harry" TYPE1 KEY1 harry at example.com
- command="svnserve -t --tunnel-user=sally" TYPE2 KEY2 sally at example.com
+ command="svnserve -t --tunnel-user=harry" TYPE1 NØKKEL1 harry at example.com
+ command="svnserve -t --tunnel-user=sally" TYPE2 NØKKEL2 sally at example.com
</screen>
+ <!-- @ENGLISH {{{
<para>This example allows both Harry and Sally to connect to
the same account via public-key authentication. Each of
them has a custom command that will be executed;
- the <option>--tunnel-user</option> option
+ the <option>-ﳢ-tunnel-user</option> option
tells <command>svnserve -t</command> to assume that the named
argument is the authenticated user. Without
- <option>--tunnel-user</option>, it would appear as though
+ <option>-ﳢ-tunnel-user</option>, it would appear as though
all commits were coming from the one shared system
account.</para>
+ @ENGLISH }}} -->
+ <para>Dette eksempelet lar både Harry og Sally få koble seg til
+ den samme kontoen via offentlig nøkkel-autentisering.
+ Hver av dem har en spesiallaget kommando som vil bli kjørt;
+ valget <option>--tunnel-user</option> ber <command>svnserve
+ -t</command> om å gå ut i fra at den spesifiserte verdien er
+ den autentiserte brukeren.
+ Uten <option>--tunnel-user</option> vil det se ut som om alle
+ innlegginger kommer fra en delt systemkonto.</para>
+ <!-- @ENGLISH {{{
<para>A final word of caution: giving a user access to the
server via public-key in a shared account might still allow
other forms of SSH access, even if you've set the
@@ -1732,12 +1993,32 @@
To give the user as little permission as possible, you may
want to specify a number of restrictive options immediately
after the <literal>command</literal>:</para>
+ @ENGLISH }}} -->
+ <para>En siste advarsel:
+ Det å gi en bruker tilgang til tjeneren via en offentlig
+ nøkkel på en delt konto kan fortsatt gi andre former for
+ SSH-tilgang, selv om du har definert
+ <literal>command</literal>-verdien i
+ <filename>authorized_keys</filename>.
+ Brukeren kan for eksempel fortsatt få kommandolinjetilgang via
+ SSH, eller være i stand til å utføre X11- eller generell
+ port-<!-- ¤ -->forwarding gjennom tjeneren.
+ For å gi brukeren så lite rettigheter som mulig, vil du
+ kanskje spesifisere et antall begrensningsvalg like etter
+ <literal>command</literal>:</para>
+<!-- @ENGLISH {{{
<screen>
- command="svnserve -t --tunnel-user=harry",no-port-forwarding,\
+ command="svnserve -t -ﳢ-tunnel-user=harry",no-port-forwarding,\
no-agent-forwarding,no-X11-forwarding,no-pty \
TYPE1 KEY1 harry at example.com
</screen>
+ at ENGLISH }}} -->
+<screen>
+ command="svnserve -t --tunnel-user=harry",no-port-forwarding,\
+ no-agent-forwarding,no-X11-forwarding,no-pty \
+ TYPE1 NØKKEL1 harry at example.com
+</screen>
</sect3>
More information about the svnbook-dev
mailing list