Solución:
Llamar al subsistema con sudo funcionó para mí.
A un host de Ubuntu, por ejemplo:
sftp -s "sudo /usr/lib/openssh/sftp-server" targethost.fqdn
SFTP es un comando de acceso a las operaciones de archivos, con las restricciones de la cuenta que usa. Debe usar ssh para realizar más operaciones administrativas, haciendo imposible usar sudo y SFTP al mismo tiempo. Si necesita acceder a todo el disco sin restricciones usando SFTP, hágalo usando la cuenta de root. De todos modos, puede iniciar sesión con root en sftp y ssh al mismo tiempo, por supuesto, usando dos sesiones diferentes.
Las llaves de seguridad mejoran la seguridad y facilitan el registro, ya que no requieren entrada de teclado. Solo ayuda a iniciar sesión, puede tener varias contraseñas para cada usuario de la cuenta y tuvo el mismo efecto.
EDITAR: Olvidé: puedes crear otra cuenta con el mismo efecto que root si asignas el ID de usuario a 0, pero no tenía ningún sentido, siendo peligroso de la misma manera. Podría dar algo de confusión si alguien intenta iniciar sesión como root, pero aparte de eso, no tenía mucho sentido.
Más allá de lo que @MartinVonWittich sugirió en los comentarios anteriores, podría configurar un par de claves SSH dedicadas solo para esta actividad y agregarlas al usuario raíz /root/.ssh/authorized_keys
archivo limitando su alcance a un solo comando.
# User backup's $HOME/.ssh/authorized_keys file
command="/usr/libexec/openssh/sftp-server" ssh-dss AAAAC8ghi9ldw== [email protected]
Esto permitiría a otro sistema con la clave correspondiente a este par para SFTP en este sistema como root. Aún tendrías un registro de esta conexión en tu syslog
y / o secure.log
archivos (asumiendo que su distribución proporciona este nivel de registro).
NOTA: Cualquiera que acceda al servidor en este método tendría acceso cartes blanche, así que úselo sabiamente. Mejor aún, continúe leyendo y combine esta capacidad con chroot y acceso de solo lectura, para construir restricciones más estrictas y acceso dirigido a ubicaciones específicas como root.
chroot y readonly
La otra técnica que podría explotar aquí sería limitar la conexión SFTP para que se arraigara en ubicaciones específicas como raíz, según la clave SSH que se usó. Consulte mi respuesta a esta pregunta y respuesta de U&L titulada: “Restringir la copia de seguridad sin contraseña con SFTP” para obtener más detalles.
También puedes controlar sftp-server
a través de sus interruptores -R
y -d
.
-d start_directory
specifies an alternate starting directory for users. The pathname
may contain the following tokens that are expanded at runtime: %%
is replaced by a literal '%', %h is replaced by the home directory
of the user being authenticated, and %u is replaced by the user‐
name of that user. The default is to use the user's home
directory. This option is useful in conjunction with the
sshd_config(5) ChrootDirectory option.
-R Places this instance of sftp-server into a read-only mode.
Attempts to open files for writing, as well as other operations
that change the state of the filesystem, will be denied.