Linux

為非root使用者設置公鑰授權的SSH

  • November 23, 2013

我能夠使用公鑰為 root 使用者設置 ssh 登錄,並嘗試對非 root 使用者應用相同的邏輯。我試圖解決這個問題是徒勞的。我在本地機器和遠端伺服器上都使用 centos。

這是我的遠端伺服器上的 sshd_config 文件的要點,

RSAAuthentication yes
PublicKeyAuthentication yes
AuthorizedKeysFile /etc/ssh/user/authorized_keys

PasswordAuthentication no

UsePAM no

PermitRootLogin without-password

當我在 centos 中閱讀有關 home dir 加密的資訊時,我已將授權密鑰文件從使用者家移至 /etc/ssh/user/authorized_keys。

我還更改了與非 root 使用者關聯的所有文件/目錄的所有權。

不確定我的配置中缺少哪個步驟,因為相同的配置對於根遠端登錄非常有效。

刪除配置文件中的 authorized_keys 條目。重啟sshd。在非 root 使用者主目錄中創建一個 .ssh 目錄。將密鑰放在一個名為 ~/.ssh/authorized keys 的文件中。將目錄設為 0700,將 authorized_keys 文件設為 0644。對 root 使用者執行相同操作。

為了清楚起見,您需要來自源電腦的 PUBLIC 密鑰文件(例如 ~/.ssh/id_rsa.pub)位於目標電腦上的 ~/.ssh/authorized_keys 中。

如果你複製 ~/.ssh/id_rsa 那就行不通了。現代 sshd 還將堅持 ~/.ssh 是模式 700 和 ~/.ssh/authorized_keys 是目標機器上的模式 600。

另外:如果可以,請使用 sudo 而不是允許 root 通過 ssh 登錄。

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