limux密鑰對配置登錄主機

1. Linux主機免密碼使用密鑰登錄

這裏假設主機A(192.168.0.113)用來遠程鏈接主機B(192.168.0.186)linux

在主機A上執行以下命令來生成配對密鑰:ssh-keygen -t rsa -b 3072算法

-t參數指定加密算法爲rsa,-b參數指定密鑰長度,能夠是102四、204八、3072等等,位數越長,被暴力破解所需的時間越久vim

遇到提示回車默認便可,公鑰被存到用戶目錄下.ssh目錄,好比root存放在:/root/.ssh/id_rsa.pubssh

將 .ssh 目錄中的 id_rsa.pub 文件傳輸到主機B
在主機A中執行以下命令和主機B創建信任,例(假設主機B的IP爲:192.168.0.186):ide

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.186

如上命令的實際效果是在主機B的/root/.ssh/的目錄下新建一個authorized_keys文件,其內容就是主機A的id_rsa.pub內容測試

下面就能夠用scp、ssh命令不須要密碼來遠程鏈接主機B了加密

ssh root@192.168.0.186 回車就不須要密碼了。

若是機器B須要添加多個機器的公鑰,則須要在authorized_keys中追加公鑰內容,命令以下:
在其餘機器上把公鑰文件發送給主機B,而後在主機B上執行以下命令rest

cat id_rsa.pub >> /root/.ssh/authorized_keys

id_rsa : 生成的私鑰文件
id_rsa.pub : 生成的公鑰文件
know_hosts : 已知的主機公鑰清單it

若是但願ssh公鑰生效需知足至少下面兩個條件:io

  1. .ssh目錄的權限必須是700
  2. .ssh/authorized_keys文件權限必須是600

1.1 主機B取消密碼登錄

# vim /etc/ssh/sshd_config  
PasswordAuthentication no     //yes改成no  
ChallengeResponseAuthentication no  //yes改成no  
      
RSAAuthentication yes   //去掉前面的註釋  
PubkeyAuthentication yes  //去掉前面的註釋  
AuthorizedKeysFile .ssh/authorized_keys  //去掉前面的註釋  

改完後重啓sshd就OK了,在這裏要注意,必定要先測試密鑰是否是能登陸,成功後在禁止密碼登陸,否則很容易把本身牆外面

2. linux ssh密鑰登陸和取消密鑰登陸
# 取消密鑰登陸
#PubkeyAuthentication yes 把yes改成no
PubkeyAuthentication no
 
# 取消密鑰登陸只須要把no改爲yes
PasswordAuthentication yes

# 重啓sshd服務
systemctl restart sshd.service
3. 使用密鑰方式登錄Linux主機

這裏以主機B爲例,使用SecureCRT 8.5遠程鏈接軟件

先使用密碼的方式登錄主機B
執行以下命令來生成配對密鑰:ssh-keygen -t rsa -b 3072
而後,在主機B上安裝公鑰:

cd /root/.ssh
cat id_rsa.pub >> authorized_keys

爲了確保鏈接成功,請保證如下文件權限正確:

chmod 600 authorized_keys
chmod 700 ~/.ssh

編輯 /etc/ssh/sshd_config 文件,進行以下設置:

PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

留意 root 用戶可否經過 SSH 登陸: PermitRootLogin yes

重啓 SSH 服務:service sshd restart

而後把id_rsa.pub公鑰文件下載到本地,打開SecureCRT軟件,在Authentication一欄選中PublicKey,
輸入主機IP,用戶名,選中下載的公鑰文件,而後鏈接登錄。

以密鑰方式登陸成功後,再禁用密碼登陸: PasswordAuthentication no

相關文章
相關標籤/搜索