Ssh

為什麼我的 ssh publickey 身份驗證僅適用於並發密碼身份驗證連接

  • October 28, 2010

我只是用 openssh-server 設置了一個 vanilla ubuntu lucid (10.04) 系統。我正在嘗試設置公鑰身份驗證,它僅在我首先使用密碼身份驗證連接並保持該會話打開時才有效。所有新的並發會話都將使用 publickey。

我已採取所有步驟來確保在我的伺服器端主目錄上具有正確的權限。

chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

我的客戶端 RSA 2048 位公鑰已附加(僅一行)到 authorized_keys 文件中。我的 RSA 密鑰也有空白密碼。

我對可能導致這種情況的原因感到困惑。我知道這與我的伺服器配置有關。我聽說如果配置不夠安全,它將不允許公鑰身份驗證,但我對那可能是什麼感到困惑。

# Authentication:
LoginGraceTime 120
PermitRootLogin no
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile    %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

其餘為預設值。PublicKey 有效,但不適用於第一次會話。

提前致謝!

如果您有一個加密的主目錄,Ubuntu 使用 EcryptFS 的方式,那麼這將解釋您所遇到的情況。在您進行首次密碼登錄後,您的 ~/.ssh/authorized_keys firsts 可用。

允許通過 ssh 密鑰直接登錄的一種方法是訪問主目錄之外的特定*AuthorizedKeysFile 。*這可以通過在路徑中使用 %u(使用者)而不是 %h(主目錄)來完成。另一種選擇是將 ~/.ssh/authorized_keys 的副本放在主目錄的“未安裝”版本中。這就是 EcryptFS 掛載下面的內容。

然而,不確定這些解決方案中的任何一個對您有多大好處。您仍然(有點)需要使用您的密碼登錄才能訪問您的正常主目錄。這是您的使用者密碼,用於解開掛載/解密 EcryptFS 主目錄所需的密碼。是的,您仍然可以手動掛載/解密,但這似乎是一個不同的問題。

引用自:https://serverfault.com/questions/171240