Ansible--通過SSH與遠程服務器連接

鉤子:

        SSH原理與運用(一):遠程登錄

         爲了避免Ansible下發指令時輸入目標主機密碼,通過證書籤名達到SSH無密碼是一個好的方案,推薦使用ssh-keygen與ssh- copy-id(scp)來實現快速證書的生成和公鑰下發,其中ssh-keygen生成一對密鑰,使用ssh-copy-id(scp)來下發生成的公鑰。下面以A服務器與B服務器雙向實現免密碼登錄和拷貝文件爲例,介紹相關的配置。 

      A服務器地址:192.168.33.44,下面簡稱A (主控端)
      B服務器地址:192.168.33.55,下面簡稱B(被控端)


由於是用Vagrant做測試,所以以下都是在用戶vagrant下做測試:

1. 在A生成密鑰對

ssh-keygen -t rsa -P ''
在當前登錄用戶的home目錄下的.ssh目錄下生成id_rsa和id_rsa.pub兩個文件,分別代表密鑰對的私鑰和公鑰。

2.拷貝A的公鑰(id_rsa.pub)到B

這裏拷貝到B的vagrant用戶.ssh目錄下爲例:

scp /home/vagrant/.ssh/id_rsa.pub:~/.ssh/id_rsa.pub.44v [email protected]
3. 登錄B

拷貝A的id_rsa.pub內容到.ssh目錄下的authorized_keys文件中

cat id_rsa.pub.44v >> authorized_keys     (更暴力的處理方法是:    cat id_rsa* >> authorized_keys)
4. 此時在A中用SSH登錄B或向B拷貝文件,將不需要密碼

ssh [email protected]
scp abc.txt [email protected]:/home

由於本地用戶名vagrant與遠程用戶名vagrant一致,登錄時可以省略用戶名:

ssh host

實現B免密碼登錄A,操作方式是一樣的,在B中用ssh-keygen生成ssh密鑰對,將公鑰拷貝到A中,A將B的公鑰拷貝到.ssh目錄下的authorized_keys文件中即可。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章