使用ssh無密碼驗證登錄 公鑰無效
遇到了ssh公鑰無效的問題
$dnf install ssh
$ssh-keygen -t rsa -f ~/.ssh/id_rsa -P ''
$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$sudo systemctl restart sshd.service
- 生成密鑰對
- 將公鑰放到
authorized_keys
- 重啓ssh服務
如果一個主機內的authorized_keys
中含有你的id_rsa.pub
你就可以登錄它的ssh端口,注意,這個時候用戶名是一樣的,如果在自己的user下進行無密碼的ssh驗證,那麼進入的也是同樣用戶名的遠程主機,如果沒有該用戶名,則登陸會失敗
最近爲了安裝python
的虛擬環境,按照教程把pyenv
安裝到了/root/.pyenv
下。因爲環境變量加在了~/.bashrc
的緣故,導致其他用戶無法使用pyenv,因此改動了/root/
目錄的權限並升高至777,然後就發現ssh無法驗證登錄了,將4臺機器額authorized_keys
文件重新設定,然而發現並沒有什麼用,Google之,發現是權限太高的緣故,ssh爲了設定安全性,如果`authorized_keys
這個文件是可被其他寫的,那麼一定是不安全的,同理/root/
目錄/.ssh/
目錄同樣受到了ssh的限制。別人的經驗是
$chmod 700 /root/.ssh/
$chmod 600 /root/.ssh/authorized_keys
$chmod 755 /root/
問題得到解決
然而看到了其他的資料,是rsync
的tutorial
,將authorized_keys
設置爲了644權限,即當前用戶可讀可寫,組用戶可讀,其他用戶可讀,不明白爲什麼,沒有進行相關的實驗,至少可信度還是有的。
不忘初心~充實就好~