Linux
兩台不同機器上的兩個本地使用者可以使用 SSH 密鑰在沒有密碼的情況下進行身份驗證嗎?
/localhome/user
我在同一網路上的兩個單獨的虛擬機上有兩個本地使用者(其主目錄列在下面)。他們共享相同的uid
(設置在/etc/passwd
)和相同的使用者名(<user>
在這裡。)useradd user -g user
我在 VM-A 上執行以下命令來創建公鑰:
[user@VM-A] ssh-keygen -t rsa -C "my.email@email.com" -b 4096
我複制了在 VM-A 上創建的公鑰並將其放入
/localhome/dev/.ssh/authorized_keys
VM-B 上。當我嘗試從 VM-A SSH 到 VM-B 時,我收到密碼提示。[user@VM-A] ssh user@VM-B password:
我確保權限設置正確(兩個
.ssh
目錄為 700,VM-B 上為 664。authorized_keys
我還確保兩個使用者都設置為/bin/bash
,而不是類似於nologin
in/etc/passwd
。我還嘗試
restorecon -R -v ~/.ssh
在 VM-A 和 VM-B 上執行。為了確保我不是完全瘋了,我使用我給定的帳戶來查看是否可以
ssh
不使用密碼。此帳戶有權訪問已安裝的“主”驅動器。我首先嘗試ssh
從 VM-A 到 VM-B,並被要求輸入密碼。然後我創建了密鑰,更新了authorized_keys
,然後再次嘗試。這第二次我ssh
使用我的帳戶成功連接到另一個 VM。是否可以使用本地使用者在兩個不同的虛擬機上設置 ssh 密鑰?
你的權限
authorized_keys
太鬆了。你可以修復它們chmod u=rw,go= ~/.ssh/authorized_keys
例如,您將能夠在安全日誌中看到未能在伺服器上使用證書的原因
/var/log/auth.log
。