DSM 6の非ルートSSH鍵認証の問題

DSM 6の非ルートSSH鍵認証の問題

adminSynology DSM 6では、SSHはユーザーがこのグループのメンバーになることを要求しているようです。

ただし、この場合でも、root以外のユーザーに対するキーベースの認証が成功しないようにするファイル/ディレクトリ権限の問題があるようです(/root/.ssh/authorized_keys標準はrootユーザーにとってうまく機能します)。

特に、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 Update 4 を使用した非 root 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}"

おすすめ記事