背景
每次登錄需要輸入復雜的密碼,而且不停的有人在嘗試登錄root賬戶。感覺心慌慌,所以不得不設置更加安全的登錄方式。
配置SSH無密碼登錄需要4步
- 准備工作
- 生成公鑰和私鑰
- 導入公鑰到認證文件,更改權限
- 測試
1. 准備工作
確認本機sshd的配置文件(需要root權限)
vi /etc/ssh/sshd_config
1)修改以下內容
RSAAuthentication yes #設置開啟使用RSA算法的基於rhosts的安全驗證;如RSAAuthentication沒有則自行添加。
PubkeyAuthentication yes #設置開啟公鑰驗證;
AuthorizedKeysFile .ssh/authorized_keys #后面的目錄,是你上傳的公鑰所保存的文件;
StrictModes no #意思是設置關閉ssh在接收登錄請求之前先檢查用戶家目錄和rhosts文件的權限和所有權。
PasswordAuthentication no #禁止使用密碼驗證登錄
UseDNS=no #加速SSH登錄
2)先別急着重啟sshd服務
先導自己需要的密鑰在重啟服務,不然你懂的遠程不要想登陸了。
2. 生成公鑰和私鑰
生成公鑰有三種方法:
1)使用命令
cd /root/.ssh ssh-keygen -t rsa
這個我沒測試過
2)使用SecureCrt生成密鑰並上傳
工具Tools-創建公鑰Create Public Key
KeyType:RSA
設置公鑰的密碼,密碼用於以后登錄時使用。也可以不輸入密碼
設置公鑰長度:這里用默認的2048就行了
設置公鑰的文件名,這里設置的id_rsa
生成后會得到以下兩個文件,其中.pub后綴時公鑰,無后綴的文件時私鑰(xftp用)
3. 導入公鑰到服務器,更改權限
1)我們復制一個公鑰文件[id_rsa.pub]命名為[authorized_keys].
2)將[authorized_keys]用xftp等上傳到 /root/.ssh/ 下覆蓋原文件即可。
3)在服務器上更改文件權限
chmod 700 /root/.ssh chmod 600 /root/.ssh/authorized_keys
4)重啟ssh服務
#CentOS 7之前的版本請執行:
service sshd restart
#CentOS 7請執行:
systemctl restart sshd.service
4. 測試使用SecureCrt登錄
Secure進入管理密鑰菜單,添加之前創建的私鑰文件,輸入密碼。
嘗試登錄,登陸成功。
如果不能登錄成功,那一定是SELinux惹的禍。
ps為了這個我弄了好長時間,入門難!
我們可以嘗試關閉SELinux
暫時關閉(重啟后恢復):
setenforce 0
永久關閉(需要重啟):
vi /etc/selinux/config SELINUX=disabled