- 論壇徽章:
- 24
|
1.在很久前,大家都習慣使用rsh/rcp/rlogin來遠程執(zhí)行各種shell命令,但是隨著現(xiàn)在對安全的**程度越來越高,還在使用這些命令就真的out了,現(xiàn)在ssh和scp已經(jīng)在替代之前的做法了。
2.為何會提到非交互式腳本,當你配置好openssh客戶端和服務端rsa密鑰后,你不僅僅可以在客戶端那臺linux或者windows對遠程的linux做任何交互式操作,還可以免輸賬號和密碼對遠程的linux做非交互式任何操作。這里的任何是指你可以執(zhí)行遠程那臺linux的任何命令,就像在本地操作一樣。當然自動是自動了,雖然安全性比rsh這些要高很多,但是還是有一定的風險,比如說別人拿到你的私鑰,你又沒在openssh服務端做任何安全設定。所以可以的話密鑰最好定期更換,更換其實也簡單,還是用非交互式腳本一鍵搞定,當然也可以讓權限在可控范圍之內的賬號做這些非交互操作,不一定要用root。
以下只是實現(xiàn)非交互式操作進行連通的方法,更多應用你的shell有多強,你非交互就有多強,如果你的bat也夠強,你可以在windows下對遠程的linux做任何操作,當然還是有一點點的局限性,為何,因為畢竟危險,有問題你看不到錯誤報告,所以客戶端盡可能在linux下作業(yè),除非你知道你在windows寫的腳本不會對遠程的linux系統(tǒng)有任何影響。
例一:在主控端免輸賬號和密碼登錄到被控端的openssh服務端上。也就是ssh登錄到遠程服務器上。
8.1.1 第一步:在主控端生成rsa公鑰和私鑰
ssh-keygen -b 2048 -t rsa或者直接ssh-keygen(新版本openssh客戶端可以直接輸入該命令生成) 默認他就是生成rsa公鑰和私鑰。
-b 生成密鈅的位數(shù)
-t 密鈅類型有rsa和dsa等
8.1.2 第二步將主控端的公鑰id_rsa.pub複製到被控端的 家目錄/.ssh/目錄下,并改名為authorized_keys。你要使用哪個賬號登陸就複製到哪個家目錄下。
8.1.3 第三步將主控端的私鑰保存到你要用來遠程登陸賬號的家目錄/.ssh目錄下。
8.2 範例二:實現(xiàn)putty等第三方ssh客戶端軟體免輸密碼登陸到linux下的openssh服務端。
8.2.1 方法一:使用puttygen.exe生成公鑰私鑰
首先是用puttygen.exe生成一對公鑰和私鑰(單擊generate生成時候,該軟體提示你要不停的左右移動鼠標),由於puttygen,exe生成的公鑰是無法直接在linux下是用。所以必須自行在 用戶家目錄/.ssh/建立一個文件authorized_keys。然後編輯它,最後把puttygen.exe生成的公鑰直接粘貼到這個文件里即可(這個生成的公鑰就是該軟體key下面的內容)。然後把私鑰存在你本地系統(tǒng)的任意目錄下。
其次打開putty軟體-單擊左邊側欄的connection-ssh-auth-browse選擇你剛剛保存的私鑰的文件。然後再選擇connection-data,再auto-username填寫你要使用自動登陸的帳號。最後選擇session,輸入遠程linux主機ip,再取一個易記的名稱,單擊save即可。下次登陸的話直接單擊你保存的那個名稱,既可實現(xiàn)無需輸入帳號和密碼,使用rsa方式登陸。
8.2.2 方法二:直接使用linux系統(tǒng)下的公鑰和私鑰。
該方法就簡單多了,直接把linux下你使用ssh-keygen(或其他軟體)生成的私鑰文件複製出來,然後使用puttygen.exe,打開菜單欄位conversions,單擊import key,然後單擊save private key 保存為任意名稱的私鑰文件。這樣的話,putty直接可以使用這個私鑰連接到該臺服務器上。
8.3 范例三:非交互式使用scp實現(xiàn)linux服務器之間腳本化復制文件。以及在windows和linux之間使用pscp實現(xiàn)腳本化非交互式復制文件。
通過范例一的方式配置了主控端A和被控端B無密碼訪問,就可以實現(xiàn)在主控端A(linux系統(tǒng)上)上用scp非交互式(腳本化無需輸入賬號和密碼)復制主控端A文件到被控端B服務器上或從被B復制到A。
那么下來要實現(xiàn)windows主控端A下非交互式腳本化復制文件到B(linux系統(tǒng))被控端上方法就更簡單了。去putty官網(wǎng)下載pscp命令文件。使用如下范例方式就可以實現(xiàn)了:pscp命令同scp命令格式幾乎一樣。
pscp -l root -i 9.15id_rsa.ppk passwd 172.16.9.15:/root
復制本地到遠端 要復制遠端文件到本地,上面就倒過來就好啦。
-l 賬號
-i 后面跟你的私鑰文件
Passwd 是你要復制的本地文件名稱
172.16.9.15:/root 就是你要復制文件到9.15的root目錄下。更多命令格式請參考pscp自帶命令幫助提示.
|
|