DSM 6의 루트가 아닌 SSH 키 인증 문제

DSM 6의 루트가 아닌 SSH 키 인증 문제

adminSynology DSM 6에서 SSH는 사용자가 이 그룹의 구성원이 되도록 요구하는 것 같습니다 .

그러나 이 경우에도 루트가 아닌 사용자에 대한 키 기반 인증이 성공하지 못하게 하는 파일/디렉터리 권한 문제가 있는 것 같습니다( /root/.ssh/authorized_keys표준은 루트 사용자에게 잘 작동함).

특히 SSH 키 기반 인증은 올바른 경우에도 실패합니다 ~/.ssh/authorized_keys.

답변1

소개 - SSH 디버깅

첫째, SSH 인증 문제를 디버깅할 때 유용한 참고 사항입니다(어쨌든 제 경우에는).

  1. Synology에서 디버그 모드로 서버를 실행합니다.

    /bin/sshd -d -p 1234` as root;
    
  2. 다음을 사용하여 클라이언트에서 로그인하십시오.

    ssh -p1234 -v <username>@<synology>
    

이렇게 하면 유용한 디버깅에 쉽게 액세스할 수 있습니다.

1단계 - sshd구성 업데이트

기본값을 지원하도록 구성 편집 /etc/ssh/sshd_config및 업데이트AuthorizedKeysFile추가하다대체 파일 위치:

AuthorizedKeysFile /var/ssh-homes/%u/dot-ssh/authorized_keys .ssh/authorized_keys

SSH 서버를 다시 시작합니다. 이 경우 DSM GUI를 통해 가장 쉽게 수행할 수 있습니다.

속도:"SSH 활성화" 선택 취소 --> 적용 --> 재확인 --> 적용

제어판의 터미널 설정

2단계 - authorized_keys해당하는 각 사용자에 대한 백업 파일 생성

이를 위해 /root/prepare-dot-ssh-authorized-keys아래와 같이 다음 스크립트를 만들었습니다.

  1. vi /root/prepare-dot-ssh-authorized-keys또는 유사한 것을 사용하여 편집
  2. 실행 가능하게 하다chmod u+x /root/prepare-dot-ssh-authorized-keys
  3. Synology 사용자 이름으로 실행/root/prepare-dot-ssh-authorized-keys <username>

인용하다

Synology 포럼에는 몇 가지 유용한 토론이 있습니다.DSM 6.2.2-24922 업데이트 4를 사용한 루트가 아닌 SSH 키 인증그리고SSH 서버는 루트를 제외한 모든 사용자의 키를 거부합니다.이로 인해 시간이 절약되고 순조롭게 진행되었습니다.

스크립트/root/prepare-dot-ssh-authorized-keys

#!/bin/bash -e

# https://community.synology.com/enu/forum/1/post/129890

if test -z "$1" ; then
    echo "usage: $0 <username>"
    echo ""
    echo "Ensure config in /etc/ssh/sshd_config includes:"
    echo "AuthorizedKeysFile /var/ssh-homes/%u/dot-ssh/authorized_keys .ssh/authorized_keys"
    exit 1
fi

_DIR="/var/ssh-homes/$1/dot-ssh"
_AK="${_DIR}/authorized_keys"

if test -d "${_DIR}" ; then
    echo "$0: ${_DIR} already exists"
    exit 2
fi

if test -r "${_AK}" ; then
    echo "$0: ${_AK} already exists"
    exit 3
fi

mkdir -p "${_DIR}"
chmod og-rwx `dirname "${_DIR}"`

touch "${_AK}"
chown "${1}.users" -R `dirname "${_DIR}"`

echo "$0: created ${_AK}"

관련 정보