[ssh.1 ssh.c]
     allow: ssh -F configfile host
This commit is contained in:
Ben Lindstrom 2001-09-12 17:48:04 +00:00
parent 525a09389e
commit 14f31ab947
3 changed files with 37 additions and 9 deletions

View File

@ -39,6 +39,9 @@
- markus@cvs.openbsd.org 2001/08/28 09:51:26
[readconf.c]
don't set DynamicForward unless Host matches
- markus@cvs.openbsd.org 2001/08/28 15:39:48
[ssh.1 ssh.c]
allow: ssh -F configfile host
20010815
- (bal) Fixed stray code in readconf.c that went in by mistake.
@ -6362,4 +6365,4 @@
- Wrote replacements for strlcpy and mkdtemp
- Released 1.0pre1
$Id: ChangeLog,v 1.1496 2001/09/12 17:35:27 mouring Exp $
$Id: ChangeLog,v 1.1497 2001/09/12 17:48:04 mouring Exp $

11
ssh.1
View File

@ -34,7 +34,7 @@
.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
.\"
.\" $OpenBSD: ssh.1,v 1.131 2001/08/22 17:45:16 stevesk Exp $
.\" $OpenBSD: ssh.1,v 1.132 2001/08/28 15:39:48 markus Exp $
.Dd September 25, 1999
.Dt SSH 1
.Os
@ -57,6 +57,7 @@
.Op Fl m Ar mac_spec
.Op Fl o Ar option
.Op Fl p Ar port
.Op Fl F Ar configfile
.Oo Fl L Xo
.Sm off
.Ar port :
@ -564,6 +565,14 @@ The default value can be set on a host-by-host basis in the
configuration files; see the
.Cm Compression
option below.
.It Fl F Ar configfile
Specifies an alternative per-user configuration file.
If a configuration file is given on the command line,
the system-wide configuration file
.Pq Pa /etc/ssh_config
will be ignored.
The default for the per-user configuration file is
.Pa $HOME/.ssh/config .
.It Fl L Ar port:host:hostport
Specifies that the given port on the local (client) host is to be
forwarded to the given host and port on the remote side.

30
ssh.c
View File

@ -39,7 +39,7 @@
*/
#include "includes.h"
RCSID("$OpenBSD: ssh.c,v 1.138 2001/08/11 22:51:27 jakob Exp $");
RCSID("$OpenBSD: ssh.c,v 1.139 2001/08/28 15:39:48 markus Exp $");
#include <openssl/evp.h>
#include <openssl/err.h>
@ -118,6 +118,9 @@ int fork_after_authentication_flag = 0;
*/
Options options;
/* optional user configfile */
char *config = NULL;
/*
* Name of the host we are connecting to. This is the name given on the
* command line, or the HostName specified for the user-supplied name in a
@ -160,6 +163,8 @@ usage(void)
fprintf(stderr, "Options:\n");
fprintf(stderr, " -l user Log in using this user name.\n");
fprintf(stderr, " -n Redirect input from " _PATH_DEVNULL ".\n");
fprintf(stderr, " -F config Config file (default: ~/%s).\n",
_PATH_SSH_USER_CONFFILE);
fprintf(stderr, " -A Enable authentication agent forwarding.\n");
fprintf(stderr, " -a Disable authentication agent forwarding (default).\n");
#ifdef AFS
@ -315,7 +320,7 @@ main(int ac, char **av)
again:
while ((opt = getopt(ac, av,
"1246ab:c:e:fgi:kl:m:no:p:qstvxACD:I:L:NPR:TVX")) != -1) {
"1246ab:c:e:fgi:kl:m:no:p:qstvxACD:F:I:L:NPR:TVX")) != -1) {
switch (opt) {
case '1':
options.protocol = SSH_PROTO_1;
@ -525,6 +530,9 @@ again:
case 'b':
options.bind_address = optarg;
break;
case 'F':
config = optarg;
break;
default:
usage();
}
@ -609,12 +617,20 @@ again:
log_init(av[0], options.log_level == -1 ? SYSLOG_LEVEL_INFO : options.log_level,
SYSLOG_FACILITY_USER, 1);
/* Read per-user configuration file. */
snprintf(buf, sizeof buf, "%.100s/%.100s", pw->pw_dir, _PATH_SSH_USER_CONFFILE);
read_config_file(buf, host, &options);
/*
* Read per-user configuration file. Ignore the system wide config
* file if the user specifies a config file on the command line.
*/
if (config != NULL) {
read_config_file(config, host, &options);
} else {
snprintf(buf, sizeof buf, "%.100s/%.100s", pw->pw_dir,
_PATH_SSH_USER_CONFFILE);
/* Read systemwide configuration file. */
read_config_file(_PATH_HOST_CONFIG_FILE, host, &options);
/* Read systemwide configuration file. */
read_config_file(_PATH_HOST_CONFIG_FILE, host, &options);
read_config_file(buf, host, &options);
}
/* Fill configuration defaults. */
fill_default_options(&options);