OpenSSH는 XDG 사양을 준수하도록 사용자의 특정 파일 위치를 수정합니다.

OpenSSH는 XDG 사양을 준수하도록 사용자의 특정 파일 위치를 수정합니다.

OpenSSH( )의 사용자 특정 파일의 기본 위치를 수정할 수 있나요 ~/.ssh?

나는 찾았다XDG 기본 디렉토리 사양OpenSSH를 이를 준수하도록 만드는 것이 가능한지 궁금합니다.

답변1

그것은 불가능합니다.

이는 에서 유발되었습니다. 버그 2050: XDG 기반 사양 지원, 상태는 'CLOSED WONTFIX'입니다. 2012년의 다음 최종 답변 이후 사용자의 다음 요구 사항은 더 이상 답변되지 않았습니다.

OpenSSH(및 그 조상 ssh-1.x)는 17년 동안 ~/.ssh를 사용해 왔습니다. 이 위치는 수많은 사용자의 두뇌, 즐겁게 작동하는 수백만 개의 구성 및 수많은 도구에 구워졌습니다.

구성 위치를 변경하려면 매우 강력한 정당성이 필요하며 OpenSSH가 아닌 데스크톱 애플리케이션의 추세를 따르는 것만으로는 충분하지 않습니다.

Arch Linux는 상태 보고서에 이에 대한 또 다른 이유를 추가합니다. XDG 기본 디렉토리:

DropBear 및 OpenSSH와 같은 많은 SSH 데몬과 클라이언트에 의해 존재한다고 가정됩니다.

답변2

이론적으로 당신은~할 수 있었다, OpenSSH는 ~/.ssh.

하지만 이건 알아두세요매우틀에 얽매이지 않고 각 파일에 대해 서로 다른 접근 방식을 가지며 SSH 클라이언트와 서버 모두에 대한 설정을 변경하려면 수퍼유저 권한이 필요할 수 있습니다. 확실히 그렇지 않을거야편리한, 실패하는 여러 가지 특수 사례가 있을 수 있습니다.

즉, 이것을 재미있는 연습으로 시도해 보겠습니다.

  • 가정export SSH_HOME=${XDG_CONFIG_HOME:-$HOME/.config}/ssh
  • ~/.ssh/config: 명령줄을 통해 변경할 수 있습니다.ssh -F "$SSH_HOME"/config
  • ~/.ssh/id_{ed25519,rsa}{,.pub}: 또한 명령줄 ssh -i "$SSH_HOME"/id_ed25519(또는 -o IdentityFile="$SSH_HOME"/id_ed25519)입니다. 다른 키를 시도하기 위해 여러 번 지정할 수 있습니다.
  • ~/.ssh/known_hosts:ssh -o UserKnownHostsFile="$SSH_HOME"/known_hosts
  • ~/.ssh/authorized_keyssshd: (서버) 의 도움이 필요합니다 . 전역 명령문이나 사용자별 블록으로 포함된 xxx.conf 파일을 삭제하세요 . 어쨌든 확장할 수 없으므로 하드 코딩해야 합니다 ./etc/ssh/sshd_config.d/xxx.confAuthorizedKeysFile ~/.config/ssh/authorized_keysMatch user xxx~/.config/sshXDG_CONFIG_HOME

UserKnownHostsFile및 의 IdentityFile경우 에서 옵션을 설정하거나 옵션이 포함된 "$SSH_HOME"/config구성 재정의 파일을 삭제할 수도 있지만 하드 코딩에 대한 동일한 제한이 적용됩니다./etc/ssh/ssh_config.d/xxx.conf~/.config/ssh

요약하면 다음과 같습니다.

sudo tee /etc/ssh/sshd_config.d/00-xdg.conf <<< 'AuthorizedKeysFile ~/.config/ssh/authorized_keys'
export SSH_HOME=${XDG_CONFIG_HOME:-$HOME/.config}/ssh
alias ssh='ssh -F "$SSH_HOME"/config -i "$SSH_HOME"/id_ed25519 -o UserKnownHostsFile="$SSH_HOME"/known_hosts'

마음이 약한 사람에게는 적합하지 않으며 권장되지도 않습니다.

그런데 이봐, 그거~할 수 있다끝나라! ;-)

관련 정보