Welcome to the Linux Foundation Forum!

Issue on Lab 5.5

jmarinho
jmarinho Posts: 19
edited April 2021 in LFS211 Class Forum

Hi.
I was doing lab 5.5 and everything was ok except that, if I try to execute a remote command with sudo it fails:

jose@jose-pc:~$ parallel-ssh -i -h ~/ip-list.txt sudo hostnamectl
[1] 12:40:39 [FAILURE] 192.168.122.189 Exited with error code 1
Stderr: sudo: sen tty presente e non se especificou un programa askpass
[2] 12:40:39 [FAILURE] 192.168.122.32 Exited with error code 1
Stderr: sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
[3] 12:40:41 [FAILURE] 192.168.122.63 Exited with error code 1
Stderr: sudo: sen tty presente e non se especificou un programa askpass

But, if I execute the same command without sudo it works perfectly:

jose@jose-pc:~$ parallel-ssh -i -h ~/ip-list.txt hostnamectl
[1] 12:41:06 [SUCCESS] 192.168.122.189
Static hostname: osserver
Icon name: computer-vm
Chassis: vm
Machine ID: 16eb9134160e4b0e815b7ea2ca813704
Boot ID: 10459ad15c91478ca17c70e8996b5d54
Virtualization: kvm
Operating System: openSUSE Leap 15.2
CPE OS Name: cpe:/o:opensuse:leap:15.2
Kernel: Linux 5.3.18-lp152.69-default
Architecture: x86-64
[2] 12:41:06 [SUCCESS] 192.168.122.63
Static hostname: centOS7
Icon name: computer-vm
Chassis: vm
Machine ID: 69c18da367fd4a67b27c74dc950f3a77
Boot ID: c869806854a144c0b66fec9de1727d31
Virtualization: kvm
Operating System: CentOS Linux 7 (Core)
CPE OS Name: cpe:/o:centos:centos:7
Kernel: Linux 3.10.0-1160.24.1.el7.x86_64
Architecture: x86-64
[3] 12:41:06 [SUCCESS] 192.168.122.32
Static hostname: userver
Icon name: computer-vm
Chassis: vm
Machine ID: adb4ad6e2acc43d2be6e2e5529e06b30
Boot ID: 3f8ec14370b24b5190438f0cfcd9f66f
Virtualization: kvm
Operating System: Ubuntu 20.04.2 LTS
Kernel: Linux 5.4.0-71-generic
Architecture: x86-64

What I'm trying to do is to execute a remote command form the host machine against tree virtual machines that I have configured with virt-manager

Is there a simple way for insert the password for sudo when is required?

Thanks in advance.

Best Answer

  • k0dard
    k0dard Posts: 115
    Answer ✓

    Hello jmarinho,

    Why not set a passwordless sudo on your VMs ?

Answers

  • jmarinho
    jmarinho Posts: 19

    Hi.
    Thanks for your quick response.
    Well, firstly, I discarded that option because it seemed very risky from a security point of view. Although, it may not be so much in combination with disabling PasswordAuthentication on /etc/ssh/sshd_config and login with a key instead.
    If I configure it in that way, it works perfectly and I think it is ok from a security point of view.
    What I’m trying to do is learn how to do things in a safe way, even if in principle they are harder to do. And that’s why I didn’t think it could be as simple as that. I have to say that I am not managing servers at the moment nor do I have experience in that.Only the experiments I can do. I’m taking this course because that’s what I’d like to do in the future.
    Thanks for your help.

  • lee42x
    lee42x Posts: 380

    You can use ssh-keys.

  • jmarinho
    jmarinho Posts: 19

    @lee42x said:
    You can use ssh-keys.

    Yes, I do. Like I said on previous post, I use ssh-keys but what caused the error was the use of commands with sudo and k0dard adviced me to use sudo without password. That, at first, caused me qualms from a security point of view, although I realized that using ssh-keys and disabling access by username and password would compensate for using sudo without a password.
    Many thanks anyway

  • lee42x
    lee42x Posts: 380

    Well let me know if you want to get the keys to work.

  • jmarinho
    jmarinho Posts: 19

    @lee42x said:
    Well let me know if you want to get the keys to work.

    Ok. I don't known exactly what you mean.
    I think there is a little misunderstanding between you and me. I'll try to explain better what happened. Sorry if my English is not very good.
    First at all, my setup for doing the course is an Ubuntu 20.04 host with both, Virtualbox and virt-manager, installed and some Linux virtual machines with different distributions. Basically, I use the virt-manager ones for labs.
    When I have to, I access via ssh to the virtual machines from the host. In this lab what I have done is launching parallel-ssh from the host to three different virtual machines. I use a ssh-key generated for me on the host machine and copied to the virtual machines with ssh-copy-id.
    What was wrong then? Well, when I tried to execute simultaneously on that machines a command with sudo I get an error. I googled it and some sites suggested that in this cases is better to use sudo without password. I considered that solution at first a bit insecure and ask here if there was a better solution. But k0dard suggest me the same and then I thought that this could be a valid solution because I use a ssh-key and, in case I want to have a more secure set up, I could disable login with user and password.
    All of this concerns on my part are due to I have no experience on how it is done on a real scenario, "on production", and I want to know if it is admisible from a security point of view having servers or instances of virtual machines with sudo without password and if it is enough with disabling user and password login and having ssh-key enabled login for a secure setup.
    Anyway, I think I complete the lab so you can forget about this problem and I'm sorry if I thing about this too much.

  • luisviveropena
    luisviveropena Posts: 1,138

    Hi @jmarinho ,

    All of this concerns on my part are due to I have no experience on how it is done on a real scenario, "on production", and I want >to know if it is admisible from a security point of view having servers or instances of virtual machines with sudo without >password and if it is enough with disabling user and password login and having ssh-key enabled login for a secure setup.

    I'd like to suggest to take a look to Ansible and how it deals with privileges and permissions on the remote nodes, because this is one way to manage software provisioning on remote systems (and it's intended for real and big systems):

    https://docs.ansible.com/ansible/latest/user_guide/connection_details.html

    Anyway, I'm curious about what commands you would want to run with parallel-ssh that need sudo or root privileges.

    Regards,
    Luis.

  • jmarinho
    jmarinho Posts: 19

    Hi @luisviveropena

    Thanks for your suggestion. It will be useful for me.

    @luisviveropena said:
    Anyway, I'm curious about what commands you would want to run with parallel-ssh that need sudo or root privileges.

    The commands I want to run with sudo are the ones proposed on the lab ( "sudo timedatectl" and "sudo hostnamectl").
    Doing the lab I realized that this two commands does not need to be executed with sudo and the command can be executed as a normal user. But I post that question thinking of that cases in which you don't have the option of run the command without elevated privileges.

    It was just out of curiosity.

    Regards,

    José.

  • lee42x
    lee42x Posts: 380

    Backup is the first command that needs admin privledges that comes to mind. The user running backup needs to access all the files on the systems and perhaps also a remote system.

Categories

Upcoming Training