=================================== SSHproxy installation documentation =================================== .. include:: menu.inc SSHproxy installation documentation =================================== Prerequisites ------------- Here is the list of prerequisite software to run sshproxy. The versions are the ones I develop with. It may work with earlier versions, but I can't guaranty anything. * `mysql `_ 4.1.14 * `openssh `_ 4.2_p1 * `python `_ 2.4.2 - `pycrypto `_ 2.0 (indirect dependency from paramiko) - `paramiko `_ 1.5.2 - `MySQLdb `_ 1.2.0 Installation ------------ Get `SSHproxy `_ Untar the tarball in the directory of your choice:: tar zxvf sshproxy-0.2.tar.gz Now enter in the sshproxy-0.2 directory. Install the database -------------------- It is strongly recomended to use the wizard script installdb. Run the script, and answer all the questions:: ./installdb Enter the IP address to listen on [any] Enter the port to listen on [2242] Write the following configuration to ~/.sshproxy/sshproxy.conf ? (ctrl-C to cancel) bindip = '' port = 2242 Write the above configuration to ~/.sshproxy/sshproxy.conf ? (ctrl-C to cancel) Configuration saved. SSHproxy database hostname [127.0.0.1]: SSHproxy database port [3306]: SSHproxy database name [sshproxy]: SSHproxy database user [sshproxy]: SSHproxy database password [sshproxypw]: Write the following configuration to ~/.sshproxy/mysql.conf ? (ctrl-C to cancel) db = 'sshproxy' host = '127.0.0.1' password = 'sshproxypw' port = 3306 user = 'sshproxy' Write the above configuration to ~/.sshproxy/mysql.conf ? (ctrl-C to cancel) Configuration saved. MySQL administration user [root]: MySQL administration password: mysqlpassword Enter the IP of the host connecting to the database (* for any) [localhost] Enter the admin uid [admin] Enter the admin password adminpassword Enter the admin group name [Administrators] Enter the name of the group containing all sites [All Sites] Do you want to add your first site ? [Y/n] Enter the site name (this is symbolic and can be any valid identifiant) home Enter the site address (DNS name or IP, the latter is stongly recomended) 1.2.3.4 Enter the port [22] Enter the location (this is a comment about the site) My home server Enter the user uid [root] root Enter the user password rootpassword Installation complete. You can now run ./sshproxy in a console, then in another console run the following command: ssh -tp 2242 admin@localhost Password: (enter adminpassword) Then in the console enter manage_pwdb to enter sites and users Enjoy! Manual installation of the database ----------------------------------- Skip this step if you did it with the wizard. You can set up the database manually with the following commands:: mysqladmin create sshproxy mysql -u root -p sshproxy < misc/sshproxy.sql mysql -u root -p < misc/sshproxy-user.sql Then load some data (edit the file before, see below):: mysql -u root -p sshproxy < misc/sshproxy-data.sql You can adjust values in the *site* and *user* tables to reflect your own settings. Table *site* is for remote servers (can be localhost as well). Table *user* is for users on these sites. You can also change the table *login*. This table is used to connect to the proxy. Run the server -------------- Issue the following command:: ./sshproxy This runs the sshproxy server which listens on the port 2242 (or the port you configured with the wizard). Run the client -------------- Issue the following command:: ssh -tp 2242 admin@localhost home You may change the user *admin* to reflect the one you put in the *login* table. At the password prompt, enter the password you put into the *login* table. You're now connected. Try some commands, then hit Control-X. You're now in the console. You can type **help** to get some explanations about console commands. Type **back** or **switch 0** to come back to the SSH session. Configuration files ------------------- If you ever need to change configuration, the files are placed in ~/.sshproxy:: ~/.sshproxy ~/.sshproxy/id_dsa ~/.sshproxy/id_dsa.pub ~/.sshproxy/mysql.conf ~/.sshproxy/sshproxy.conf Of course, '~' here represents the home directory of the user running the daemon. Troubleshooting --------------- If you experience locks when you try to connect to a remote site, change the /etc/ssh/sshd_config file on the remote site to read:: PasswordAuthentication yes This is a known bug of SSHproxy, and will hopefully be fixed soon. The **sshproxy** daemon is not verbose on the console, but it logs thru syslog (protocol udp on localhost, facility daemon), so you may check for errors in your /var/log/syslog or /var/log/message by the following command:: tail -f /var/log/{syslog,messages} | grep sshproxy The log system will be enhanced in the next version. Of course you need to configure your syslog to accept udp from localhost. There is an example syslog-ng.conf file in ./misc/ :: -- David Guerizec