1. 程式人生 > >linux下使用ssh遠端連線免密登入

linux下使用ssh遠端連線免密登入

在hadoop中有很多元件可能在多個伺服器上。而在啟動hdfs的時候都會提醒使用者是否連線以及輸入伺服器密碼。一臺、兩臺伺服器手動輸入還不算麻煩。但是一般情況下都是有很多太伺服器。這時候就會導致操作上的麻煩,那如何才能ssh免密登入呢?

其實很簡單。我相信很多人在工作中都使用過git作為專案的程式碼版本控制吧。我們一般的操作都是在內容中搭建一個gitlab作為專案程式碼遠端倉庫,然後在本地windows下使用ssh-key -t rsa命令生成金鑰(yue)對接著將.ssh資料夾下的id_rsa.pub檔案中的內容全部複製。然後進入gitlab倉庫中的設定中將剛才複製的值貼上到指定位置

放到key的框框內。之後我們在使用git進行一系列操作的時候就不需要輸入使用者名稱和密碼了。

同樣的道理我們在linux環境中使用ssh IP -l username   IP是你要遠端連線的伺服器IP username是你要連線伺服器選擇的使用者。

輸入yes之後輸入密碼

連線成功。

使用exit命令退出連線。這樣每次連線都需要輸入密碼會給我們的操作帶來很大的不便。所以我們就必須設定一下ssh免密登入。

A伺服器遠端連線B伺服器免密連線登入方法很簡單就三步:

第一步:生成金鑰對

在A機器上使用ssh-keygen -t rsa 命令  rsa為加密方式。預設是rsa

然後連續三次不要輸入任何字元直接enter如果你輸入的一些字元就達不到免輸入登入的目的

這個時候在/home/username/.ssh下就會出現id_rsa   id_rsa.pub這兩個檔案我們需要的是id_rsa.pub(公鑰)

第二步:將id_rsa.pub中的內容追加到B伺服器/home/username/.ssh/authorized_keys檔案下

先用將id_rsa.pub檔案複製到B伺服器上(可使用ftp軟體)我們這裡使用scp 要複製的檔案 [email protected]:/路徑   命令

複製完成之後我們切換到B伺服器中的/home/username/.ssh目錄下

然後使用cat 要追加的檔案內容的檔案 >> 被追加的檔案將剛才複製過來的id_rsa.pub追加到B伺服器的authorized_keys檔案後

第三步給authorized_keys和.ssh目錄賦予許可權(只有該使用者可讀寫其他任何使用者不能有任何許可權)

如果不設定會報錯 Permission denied

先給authorized_keys賦予600許可權(6是表示可讀可寫第一個0使用者組表示沒有任何許可權第二個0表示其他使用者沒有任何許可權)

給.ssh目錄賦予700許可權(為什麼不是600呢。其實我也不知道。度娘告訴我的。。)

大功告成!接下來試試在A伺服器上使用ssh  IP -l username命令來遠端連線吧

已經不需要登入密碼了!!!!

大家可以繼續關注我的部落格!我每週都會定期更新文章!

我的個人QQ/wechat   806751350 備註csdn部落格