1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196
|
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="Adobe PageMill 2.0 Mac">
<TITLE>MacCVS On SourceForge</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffff">
<H1 ALIGN=CENTER>MacCVS On SourceForge</H1>
<P>This is a description of how to go about doing development on SourceForge
using MacCVS. </P>
<P>SourceForge uses secure shell for communicating with clients. This presents
some um special challenges for Macintosh development. Fortunately, there
are currently two mechanisms for doing this:</P>
<UL>
<LI><A HREF="#MacSSH">Using MacSSH</A>
<LI><A HREF="#Linux">Using a Linux proxy</A>
</UL>
<P><HR ALIGN=LEFT></P>
<H2><A NAME="MacSSH"></A>Using MacSSH.</H2>
<P><A HREF="http://www.macssh.com/">MacSSH</A> is an open source SSH client
for the Macintosh. You will need version 2.1a9 or later of MacSSH and version
3.1.11 or later of <A HREF="http://www.cvsgui.org/">MacCVS</A>.</P>
<P>Let's say you work on PROJECT as USER with PASSWORD.</P>
<OL>
<LI>Launch MacSSH
<LI>Choose Favorites/Edit Favorites...
<LI>Click "New" to create a new group of settings for the project.
<LI>Under the "General" tab, enter the following:
<OL>
<LI>Alias: something like "PROJECT Development"
<LI>Host Name: cvs.PROJECT.sourceforge.net
<LI>Port: 22
</OL>
<LI>Under the "Security" tab, enter the following (note the quotation
marks under "Command:"):
<OL>
<LI>Protocol: ssh2 (Secure Shell)
<LI>Username: USER
<LI>Password: PASSWORD
<LI>Command: -N -E"cvs -d /cvsroot/PROJECT server"
</OL>
<LI>Under the "SSH2" tab, enter the following:
<OL>
<LI>Method: CVS Port forward
<LI>Port:514
</OL>
<LI>Click OK (to save the new settings).
<LI>Click OK (to close the Favorites list).
<LI>Choose Favorites/PROJECT Development
<LI>Accept the host key.
<LI>Now, launch MacCVS
<LI>Choose CVS Admin/Preferences...
<LI>Under the "General" tab, enter the following:
<OL>
<LI>CvsRoot: USER@127.0.0.1:/cvsroot/PROJECT
<LI>Authentication: RHosts
</OL>
<LI>Click OK.
</OL>
<P>You should now be able to start work on SourceForge. To check out a copy
of your project:</P>
<OL>
<LI>In MacCVS, choose CVS Admin/Checkout module...
<LI>Choose the folder to save the workspace tree in.
<LI>Under the 'General" tab, enter the following:
<OL>
<LI>Module: PROJECT
</OL>
<LI>Click OK.
</OL>
<P>MacCVS should now start checking out your module.</P>
<P>If the MacSSH tunnel gets closed for some reason (if MacSSH is shut down
or cvs accidentally closes it) just choose your configuration from the Favorites
menu as in step 9 above.</P>
<P><HR ALIGN=LEFT></P>
<H2><A NAME="Linux"></A>Using a Linux proxy.</H2>
<P>This method requires a Linux box, and may open you to security holes
as it uses rsh, but as long as your private network is secure and you use
a machine behind a firewall, this should not be a problem.</P>
<P>Let's say you work on PROJECT as USER with PASSWORD and you log in to
the proxy machine as PROXYUSER and your file sharing setup has you as MACUSER.
Here are the steps to setting this up:</P>
<OL>
<LI><FONT COLOR="#000000">Choose a Linux box to use as a proxy. This should
preferably not be visible to the outside world.</FONT>
<LI><FONT COLOR="#000000">Open a <TT>telnet</TT> or <TT>ssh</TT> session
on the proxy machine from your Macintosh, logging in as </FONT>PROXYUSER<FONT
COLOR="#000000">.</FONT>
<LI><FONT COLOR="#000000">Make sure <TT>ssh</TT> and <TT>cvs</TT> are installed
on the proxy box:</FONT>
<OL>
<LI><FONT COLOR="#000000">Type <TT>which cvs</TT></FONT>
<LI><FONT COLOR="#000000">Type <TT>which ssh</TT></FONT>
</OL>
<LI><FONT COLOR="#000000">Create a key using <TT>ssh-keygen</TT> (if you
don't already have one), and don't give it a password. Store it in ~/<TT>.ssh/identity</TT>
(i.e. in your home directory)</FONT>
<LI><FONT COLOR="#000000">Upload the contents of <TT>~/.ssh/identity.pub</TT>
(the text file) to </FONT>SourceForge<FONT COLOR="#000000">:</FONT>
<OL>
<LI><FONT COLOR="#000000">Copy the <TT>~/.ssh/identity.pub </TT>from your
telnet application the clipboard</FONT>
<LI><FONT COLOR="#000000">Go to your </FONT><A HREF="https://sourceforge.net/account/">account
page</A><FONT COLOR="#000000">.</FONT>
<LI><FONT COLOR="#000000">Click on "</FONT><A HREF="https://sourceforge.net/account/editsshkeys.php">Edit
Keys</A><FONT COLOR="#000000">" at the bottom</FONT>
<LI><FONT COLOR="#000000">Paste the key in, and remove any carriage returns.</FONT>
<LI><FONT COLOR="#000000">Click "Update"</FONT>
</OL>
<LI><FONT COLOR="#000000">You may now have to wait several hours for your
key to become active.</FONT>
<LI><FONT COLOR="#000000">Create a file </FONT><TT><A HREF="config">~/.ssh/config</A></TT><FONT
COLOR="#000000"> and replace PROJECT and USER strings with your values.
This basically creates an ssh alias called PROJECT that uses the blowfish
cipher and talks to the correct SourceForge server.</FONT>
<LI><FONT COLOR="#000000">Create a script called "</FONT><TT><A HREF=
"cvsproxy">cvsproxy</A></TT><FONT COLOR="#000000">" on the remote
box in <TT>/usr/bin</TT> and make it world executable (<TT>chmod +x cvsproxy</TT>).
This proxy takes its arguments and passes the first one to ssh as the host
alias and the rest to cvs.</FONT>
<LI><FONT COLOR="#000000">Add your Mac's hostname and <TT>MACUSER</TT>
to your <TT>~/.rhosts</TT> file</FONT>
<OL>
<LI><FONT COLOR="#000000">Add a line<TT> machost.example.com MACUSER</TT></FONT>
<LI><FONT COLOR="#000000">You may want to use the machine's IP address
if it has no name.</FONT>
<LI><FONT COLOR="#000000">You may wish to leave off the login to avoid
problems with the File Sharing id.</FONT>
<LI><FONT COLOR="#000000">Make sure that your .rhosts file has the correct
permissions: <TT>-rw-r--r--</TT></FONT>
</OL>
<LI><FONT COLOR="#000000">Turn on <TT>rsh</TT>. Under Linux, this consists
of the following steps:</FONT>
<OL>
<LI><FONT COLOR="#000000">Edit <TT>/etc/inetd.conf</TT> to include or uncomment
a line looking like this:<BR>
<TT>shell stream tcp nowait root /usr/sbin/tcpd in.rshd</TT></FONT>
<LI><FONT COLOR="#000000">Restart the internet daemon. One of the following
incantations should work:</FONT>
<OL>
<LI><FONT COLOR="#000000">Go to <TT>/etc/rc.d/init.d</TT> and type: <TT>./inet
restart</TT></FONT>
<LI><FONT COLOR="#000000">OR, as root, type <TT>kill -HUP inetd</TT></FONT>
</OL>
</OL>
<LI><FONT COLOR="#000000">Set up MacCVS to connect via rsh. </FONT>
<OL>
<LI><FONT COLOR="#000000">Launch MacCVS</FONT>
<LI><FONT COLOR="#000000">Choose CVS Admin/Preferences...</FONT>
<LI><FONT COLOR="#000000">In the "General" panel, enter the following:</FONT>
<OL>
<LI><FONT COLOR="#000000">Authentication: "Rsh" </FONT>
<LI><FONT COLOR="#000000">CVSROOT: </FONT>
</OL>
<LI><FONT COLOR="#000000">In the "Ports" panel, enter the following:</FONT>
<OL>
<LI><FONT COLOR="#000000">Check "Check for an alternate server name"
</FONT>
<LI><FONT COLOR="#000000">Alternate server: cvsproxy PROJECT</FONT>
</OL>
<LI><FONT COLOR="#000000">Click OK</FONT>
</OL>
</OL>
<P><FONT COLOR="#000000"><BR>
This tells MacCVS to call <TT>cvsproxy</TT> on the proxy machine with the
arguments <TT>PROJECT</TT> and whatever other arguments would have been
passed to <TT>cvs</TT>. <TT>cvsproxy</TT> just turns around and executes
<TT>ssh PROJECT cvs</TT> with whatever arguments would have been passed
to <TT>cvs</TT>. <TT>rsh</TT> handles the flow of the data from there, and
it all Just Works.</FONT></P>
<P><HR ALIGN=LEFT></P>
<ADDRESS>This page is maintained by <A HREF="mailto:cvshawkfish@sourceforge.net">Richard
Wesley</A>. Many thanks to Jean-Pierre Stierlin for the MacSSH fixes and
directions and to Chris Nandor for the Linux proxy.</ADDRESS>
</BODY>
</HTML>
|