hi at 90.gripe
2024-Feb-01 15:27 UTC
Request: Add XDG Base Directory paths as fallback locations
Hello. I'd like to preface this by saying that while this can be considered a feature request, I am more than happy to contribute a patch myself that would deliver this. I am aware that in the past there has been some hostility towards the suggestion to adhere to the XDG Base Directory Specification for OpenSSH and its various configuration files. For the record, I am not asking for any of the paths to change, nor for the removal of the traditional ~/.ssh directory; I understand that many people still expect this directory to exist for most conventional (typically non-desktop) setups, and it would not be wise to make breaking changes that forego this expectation. Instead, I ask that the spec be considered in order to provide a set of alternative/fallback paths that OpenSSH may search for in the absence of the typical ~/.ssh directory. As a desktop user still making use of OpenSSH, I greatly prefer being able to adhere to the spec and keep the amount of dotfiles and directories in $HOME minimal. Hence, I would like to at least have the option to move files from the ~/.ssh directory into their respective compliant paths, and have OpenSSH search for those by default, without needing either complex aliases or wrapper scripts with extra usage flags or configuration at the root level. OpenSSH itself would not need to create these directories either, as it may simply prioritise and continue to create the existing ~/.ssh directory. The approach I'm suggesting is one that plenty of long-standing software has taken up in order to provide the opt-in approach of XDGBDS support. Notably, Git provides such a fallback option in $XDG_CONFIG_HOME/git/config in place of the default ~/.gitconfig, as does GNU Emacs among others. More recently, even Bash has warmed up to the idea despite initially being opposed to the suggestion to change the locations of ~/.bash_profile and ~/.bashrc, as can be seen at https://savannah.gnu.org/support/?108134. As I said, I am more than happy to provide this myself in a patch or pull request if the developers are okay with the approach as I'm suggesting it. At the end of the day, I don't wish to burden the team itself with something that would be rather low-priority either way. Kind regards, 90
Since I can't help but feel like my previous email is already being flat-out ignored, I would just like to reiterate: - I am not asking for ~/.ssh to stop being used. - I am happy to contribute this myself with the blessing of the devs. All I would like is to be able to move files within ~/.ssh to their appropriate XDG paths and have OpenSSH continue to find these files without me needing to explicitly configure it to do so with either command options or root access for sshd. I would think this is a perfectly reasonable alternative to ask for, especially if the requirement is to prioritise the legacy ~/.ssh path for backwards compatibility. Would this please at least be taken into consideration? Thank you. 1 February 2024 at 15:27, hi at 90.gripe wrote:> > Hello. I'd like to preface this by saying that while this can be considered a feature request, I am more than happy to contribute a patch myself that would deliver this. > > I am aware that in the past there has been some hostility towards the suggestion to adhere to the XDG Base Directory Specification for OpenSSH and its various configuration files. For the record, I am not asking for any of the paths to change, nor for the removal of the traditional ~/.ssh directory; I understand that many people still expect this directory to exist for most conventional (typically non-desktop) setups, and it would not be wise to make breaking changes that forego this expectation. > > Instead, I ask that the spec be considered in order to provide a set of alternative/fallback paths that OpenSSH may search for in the absence of the typical ~/.ssh directory. As a desktop user still making use of OpenSSH, I greatly prefer being able to adhere to the spec and keep the amount of dotfiles and directories in $HOME minimal. Hence, I would like to at least have the option to move files from the ~/.ssh directory into their respective compliant paths, and have OpenSSH search for those by default, without needing either complex aliases or wrapper scripts with extra usage flags or configuration at the root level. OpenSSH itself would not need to create these directories either, as it may simply prioritise and continue to create the existing ~/.ssh directory. > > The approach I'm suggesting is one that plenty of long-standing software has taken up in order to provide the opt-in approach of XDGBDS support. Notably, Git provides such a fallback option in $XDG_CONFIG_HOME/git/config in place of the default ~/.gitconfig, as does GNU Emacs among others. More recently, even Bash has warmed up to the idea despite initially being opposed to the suggestion to change the locations of ~/.bash_profile and ~/.bashrc, as can be seen at https://savannah.gnu.org/support/?108134. > > As I said, I am more than happy to provide this myself in a patch or pull request if the developers are okay with the approach as I'm suggesting it. At the end of the day, I don't wish to burden the team itself with something that would be rather low-priority either way. > > Kind regards, > > 90 >