Linux

兩台不同機器上的兩個本地使用者可以使用 SSH 密鑰在沒有密碼的情況下進行身份驗證嗎?

  • April 20, 2018

/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_keysVM-B 上。當我嘗試從 VM-A SSH 到 VM-B 時,我收到密碼提示。

[user@VM-A] ssh user@VM-B
password:

我確保權限設置正確(兩個.ssh目錄為 700,VM-B 上為 664。authorized_keys我還確保兩個使用者都設置為/bin/bash,而不是類似於nologinin /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

引用自:https://unix.stackexchange.com/questions/438967