Re: ssh with no standard ports
Hi Jean-Louis, Thanks, the patch solved the problem :) Nuno On Thu, 2012-03-08 at 08:05 -0500, Jean-Louis Martineau wrote: > On 03/08/2012 05:42 AM, Nuno Dias wrote: > > Hi, > > > > This is a solution for one machine, I have several machines with > > different ports, I can create several dumptypes one for each machine, > > but I think this is complicate the configuration ... > > > > Why amanda force port 22 and do not uses the default? > > You are right, this is what the attached patch do. > > Jean-Louis > > > > Thanks > > Nuno > > > > On Wed, 2012-03-07 at 13:15 -0500, Jean-Louis Martineau wrote: > >> Add a client-port in the dumptype: > >> client-port 5 > >> > >> Jean-Louis > >> > >> On 03/07/2012 12:34 PM, Nuno Dias wrote: > >>>Hi, > >>> > >>>In version 3.1.3 of amanda I used .ssh/config with a configuration like > >>> this > >>> > >>> Host machine_name > >>> Port 5 > >>> > >>>To do backups of a machine through a tunnel ssh. > >>>But with version 3.3.0 this is not working anymore, what I can see in > >>> the logs is this > >>> > >>> /usr/bin/ssh SSH_OPTIONS -l amanda -p 22 -i /var/lib/amanda/.ssh/id_rsa > >>> machine_name /usr/lib64/amanda/amandad -auth=ssh > >>> > >>>Because the port is specified (-p 22) the port in .ssh/config it's not > >>> used. > >>> > >>>This is a feature? or can I change this? > >>> > >>> Thanks > >>> Nuno > -- Nuno Dias LIP
Re: ssh with no standard ports
On 03/08/2012 05:42 AM, Nuno Dias wrote: Hi, This is a solution for one machine, I have several machines with different ports, I can create several dumptypes one for each machine, but I think this is complicate the configuration ... Why amanda force port 22 and do not uses the default? You are right, this is what the attached patch do. Jean-Louis Thanks Nuno On Wed, 2012-03-07 at 13:15 -0500, Jean-Louis Martineau wrote: Add a client-port in the dumptype: client-port 5 Jean-Louis On 03/07/2012 12:34 PM, Nuno Dias wrote: Hi, In version 3.1.3 of amanda I used .ssh/config with a configuration like this Host machine_name Port 5 To do backups of a machine through a tunnel ssh. But with version 3.3.0 this is not working anymore, what I can see in the logs is this /usr/bin/ssh SSH_OPTIONS -l amanda -p 22 -i /var/lib/amanda/.ssh/id_rsa machine_name /usr/lib64/amanda/amandad -auth=ssh Because the port is specified (-p 22) the port in .ssh/config it's not used. This is a feature? or can I change this? Thanks Nuno diff --git a/common-src/ssh-security.c b/common-src/ssh-security.c index a6b11be..6e3d49b 100644 --- a/common-src/ssh-security.c +++ b/common-src/ssh-security.c @@ -114,7 +114,7 @@ ssh_connect( int result; struct sec_handle *rh; char *amandad_path=NULL, *client_username=NULL, *ssh_keys=NULL; -char *client_port = "22"; +char *client_port = NULL; assert(fn != NULL); assert(hostname != NULL); @@ -303,6 +303,10 @@ runssh( char *xclient_username = (char *)client_username; char *xssh_keys = (char *)ssh_keys; char *xclient_port = (char *)client_port; +GPtrArray *myargs; +gchar *ssh_options[100] = {SSH_OPTIONS, NULL}; +gchar **ssh_option; +gchar *cmd; memset(rpipe, -1, sizeof(rpipe)); memset(wpipe, -1, sizeof(wpipe)); @@ -317,18 +321,31 @@ runssh( if(!xclient_username || strlen(xclient_username) <= 1) xclient_username = CLIENT_LOGIN; if(!xclient_port || strlen(xclient_port) <= 1) - xclient_port = "22"; + xclient_port = NULL; -if(!ssh_keys || strlen(ssh_keys) <= 1) { - g_debug("exec: %s %s %s %s %s %s %s %s %s", - SSH, "SSH_OPTIONS", "-l", xclient_username, "-p", client_port, - rc->hostname, xamandad_path, "-auth=ssh"); +myargs = g_ptr_array_sized_new(20); +g_ptr_array_add(myargs, SSH); +for (ssh_option = ssh_options; *ssh_option != NULL; ssh_option++) { + g_ptr_array_add(myargs, *ssh_option); } -else { - g_debug("exec: %s %s %s %s %s %s %s %s %s %s %s", - SSH, "SSH_OPTIONS", "-l", xclient_username, "-p", client_port, - "-i", xssh_keys, rc->hostname, xamandad_path, "-auth=ssh"); +g_ptr_array_add(myargs, "-l"); +g_ptr_array_add(myargs, xclient_username); +if (xclient_port) { + g_ptr_array_add(myargs, "-p"); + g_ptr_array_add(myargs, xclient_port); } +if (ssh_keys && strlen(ssh_keys) > 1) { + g_ptr_array_add(myargs, "-i"); + g_ptr_array_add(myargs, xssh_keys); +} +g_ptr_array_add(myargs, rc->hostname); +g_ptr_array_add(myargs, xamandad_path); +g_ptr_array_add(myargs, "-auth=ssh"); +g_ptr_array_add(myargs, NULL); + +cmd = g_strjoinv(" ", (gchar **)myargs->pdata); +g_debug("exec: %s", cmd); +g_free(cmd); switch (rc->pid = fork()) { case -1: @@ -356,15 +373,8 @@ runssh( safe_fd(-1, 0); -if(!ssh_keys || strlen(ssh_keys) <= 1) { - execlp(SSH, SSH, SSH_OPTIONS, "-l", xclient_username, "-p", client_port, - rc->hostname, xamandad_path, "-auth=ssh", (char *)NULL); -} -else { - execlp(SSH, SSH, SSH_OPTIONS, "-l", xclient_username, "-p", client_port, - "-i", xssh_keys, rc->hostname, xamandad_path, "-auth=ssh", - (char *)NULL); -} +execvp(SSH, (gchar **)myargs->pdata); + error("error: couldn't exec %s: %s", SSH, strerror(errno)); /* should never go here, shut up compiler warning */
Re: ssh with no standard ports
Hi, This is a solution for one machine, I have several machines with different ports, I can create several dumptypes one for each machine, but I think this is complicate the configuration ... Why amanda force port 22 and do not uses the default? Thanks Nuno On Wed, 2012-03-07 at 13:15 -0500, Jean-Louis Martineau wrote: > Add a client-port in the dumptype: >client-port 5 > > Jean-Louis > > On 03/07/2012 12:34 PM, Nuno Dias wrote: > > Hi, > > > > In version 3.1.3 of amanda I used .ssh/config with a configuration like > > this > > > > Host machine_name > > Port 5 > > > > To do backups of a machine through a tunnel ssh. > > But with version 3.3.0 this is not working anymore, what I can see in > > the logs is this > > > > /usr/bin/ssh SSH_OPTIONS -l amanda -p 22 -i /var/lib/amanda/.ssh/id_rsa > > machine_name /usr/lib64/amanda/amandad -auth=ssh > > > > Because the port is specified (-p 22) the port in .ssh/config it's not > > used. > > > > This is a feature? or can I change this? > > > > Thanks > > Nuno > -- Nuno Dias LIP
Re: ssh with no standard ports
Add a client-port in the dumptype: client-port 5 Jean-Louis On 03/07/2012 12:34 PM, Nuno Dias wrote: Hi, In version 3.1.3 of amanda I used .ssh/config with a configuration like this Host machine_name Port 5 To do backups of a machine through a tunnel ssh. But with version 3.3.0 this is not working anymore, what I can see in the logs is this /usr/bin/ssh SSH_OPTIONS -l amanda -p 22 -i /var/lib/amanda/.ssh/id_rsa machine_name /usr/lib64/amanda/amandad -auth=ssh Because the port is specified (-p 22) the port in .ssh/config it's not used. This is a feature? or can I change this? Thanks Nuno
ssh with no standard ports
Hi, In version 3.1.3 of amanda I used .ssh/config with a configuration like this Host machine_name Port 5 To do backups of a machine through a tunnel ssh. But with version 3.3.0 this is not working anymore, what I can see in the logs is this /usr/bin/ssh SSH_OPTIONS -l amanda -p 22 -i /var/lib/amanda/.ssh/id_rsa machine_name /usr/lib64/amanda/amandad -auth=ssh Because the port is specified (-p 22) the port in .ssh/config it's not used. This is a feature? or can I change this? Thanks Nuno -- Nuno Dias LIP