Linux SSH免密碼登陸與拷貝文件(SCP)

在工做當中常常會登陸遠程服務器安裝軟件、部署應用或者拷貝文件到遠程服務器上,都會提示輸入密碼才能完成相關的操做。工做中若是要頻繁登陸服務器和拷貝文件的狀況下,常常輸入密碼不免會以爲麻煩,且效率低下。並且在持續集成的場景下,自動部署應用時是沒有人工干預的,這種狀況若是要輸入密碼才能拷貝文件至遠程服務器,就不能實現自動部署的功能了。下面以A服務器與B服務器雙向實現免密碼登陸和拷貝文件爲例,介紹相關的配置。
A服務器地址:192.168.1.200,下面簡稱A
B服務器地址:192.168.1.201,下面簡稱Bbash

一、在A生成密鑰對

ssh-keygen -t rsa

執行上述命令,一路回車,會在當前登陸用戶的home目錄下的.ssh目錄下生成id_rsa和id_rsa.pub兩個文件,分別表明密鑰對的私鑰和公鑰。服務器

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

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

scp /root/.ssh/id_rsa.pub root@192.168.1.200:/root

三、登陸B

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

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

四、此時在A中用SSH登陸B或向B拷貝文件,將不須要密碼

ssh root@192.168.1.201
scp abc.txt root@192.168.1.201:/root

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

快捷方式部署

ssh-copy-id -i ~/.ssh/id_rsa.pub root@服務器地址

若是命令ssh-copy-id命令不存在,那是當前系統沒有安裝openssh-clients客戶端組件,能夠經過以下命令安裝:持續集成

yum install openssh-clients*
相關文章
相關標籤/搜索