linux 遠程ssh免密登陸

寫在前面

先說說需求:linux

咱們平時開發、運維操做linux過程當中常常須要實現將遠程文件拷貝到本地或者本地文件拷貝到遠程;執行遠程命令等操做;這個時候創建ssh免密登陸應該是一個比較好的選擇;算法

原理shell

在linux系統中,ssh是遠程登陸的默認工具,由於該工具的協議使用了RSA/DSA的非對稱加密算法;非對稱加密算法會分別產生公鑰和私鑰;運維

如今有兩臺機器:ServerA和ServerB,ServerA須要免密登陸ServerB,咱們先在ServerA生成公鑰和私鑰,把公鑰拷貝到ServerB指定的文件下,ServerA就能夠免密登陸ServerB了;ssh

如下方法一和方法二都是使用依據上面的原理實現;工具

方法一:使用ssh-copy-id 命令拷貝密鑰:

一、ServerA執行ssh-keygen生成公私鑰;

ssh-keygen

公私鑰 默認生成路徑/root/.ssh(這裏的root是用戶名,若是你是其餘用戶替換便可)測試

如圖:這裏會讓你輸入密鑰的保護密碼,我這裏是一路回車(也就是不設置密鑰密碼)加密

1547276774262

生成的/root/.ssh的文件:code

1547276894955

二、使用ssh-copy-id將公鑰複製到ServerB中

ssh-copy-id -i id_rsa.pub文件 ServerB用戶名@ServerB_Ip
#示例
ssh-copy-id -i /root/.ssh/id_rsa.pub root@139.199.196.67

這個過程須要輸入ServerB對應用戶密碼。下圖添加成功。server

1547277535362

ok,搞定。

三、測試

ServerA執行:

ssh root@ServerB_Ip date
#示例
ssh root@139.199.196.67 date

獲得:
Sat Jan 12 15:22:17 CST 2019

成功!

方法二:手工拷貝密鑰

其實手工拷貝跟方法一的使用命令拷貝差很少,就是操做上原始一點;

一、生成公私鑰:同方法一的步驟1;

二、手動將步驟1中ServerA生成的/root/.ssh/id_rsa.pub拷貝到ServerB的/root/.ssh目錄下並重命名authorized_keys

三、測試:同方法一的步驟3;

相關文章
相關標籤/搜索