
我注意到Oracle Cloud的預先產生的金鑰對可以在沒有密碼的情況下登入Linux伺服器,並且也可以在沒有密碼的情況下登入sudo。我無法在我知道的其他地方重現這種情況。
Oracle Cloud 與其他雲端的區別在於,它也在 OOBE 中產生了一個使用者ubuntu
(對於 Ubuntu。對於 Oracle Linux,預設使用者是opc
。無論我使用哪個發行版,opc
總是會產生一個使用者)。看來Oracle Cloud伺服器root
預設不使用使用者。所以我意識到有一個Oracle Cloud Agent
已安裝的,可與 sudo user 一起使用opc
。該軟體是否處理 sudo 授權? (但我檢查過/etc/pam.d
和其他一些地方,這些文件仍然是香草。)
其他網站告訴我設定一個 pam 模組libpam-ssh-agent-auth
,但這是一個過時的項目,多年來沒有更新。我在很多伺服器上嘗試過,但都不起作用。 (儘管許多發行版沒有從套件管理器中刪除這個 pam 模組)
如果有人能告訴我如何實現這一目標,我將不勝感激。
答案1
須藤
若要允許 sudo 群組(或同等群組)的用戶,可以變更 sudo 配置。將其添加到/etc/sudoers (使用 visudo 作為 root)
%sudo ALL=(ALL) NOPASSWD: ALL
請注意,使用者需要是 sudo 群組的成員。
或只是一個特定用戶:
username_here ALL = (ALL) NOPASSWD: ALL
SSH 金鑰
為了能夠以無需密碼的使用者身分登錄,您的公開 SSH 金鑰需要新增到您要登入的帳戶中。
正確的方法是使用 ssh-copy-id
ssh-copy-id [email protected]
這會將您的公鑰添加到指定用戶的主資料夾下.ssh/authorized_keys
如果您願意,也可以手動複製它。只需將此文件(您的本機電腦)的輸出複製到.ssh/authorized_keys用戶的文件(在伺服器上):
cat ~/.ssh/id_rsa.pub
答案2
通常雲映像運行cloudinit
當它們啟動以初始化和自訂唯一實例的通用映像時。
Cloudnit 可以而且通常確實執行通用任務,但通常也配置為與特定雲端提供者元資料服務互動以載入供應商和/或使用者資料。該機制通常是在實例中提供您上傳到雲端提供者的個人公用 ssh 金鑰,以及使您能夠使用關聯的私鑰登入的機制。
Cloud init 可以做很多事情,包括部署使用者、為新部署的使用者設定 ssh 金鑰和/或密碼以及 sudo 權限。
如何使您自己的用戶資料能夠(進一步)自訂雲端初始化的功能是特定於雲端供應商的。