兩臺(tái)linux服務(wù)器免密傳輸配置
兩臺(tái)linux之間,免密配置好之后,可以免密ssh登錄,可以免密傳輸文件,方便使用,另外在jenkins部署應(yīng)用的時(shí)候,也會(huì)用到
兩臺(tái)服務(wù)器,分別是A,B
A上面的用戶userA,密碼passA
B上面的用戶userB,密碼paasB
在這兩個(gè)用戶之間配置免密
這里,我們以設(shè)置A到B的免密傳輸為例
1.首先,確定兩臺(tái)機(jī)器可以正常傳輸文件
從A到B
scp tmp.txt userB@192.168.1.2:/home/userB
scp是 secure copy的縮寫,可能也可以理解為ssh copy ,scp是linux系統(tǒng)下基于ssh登陸進(jìn)行安全的遠(yuǎn)程文件拷貝命令。
這個(gè)命令的使用方法
scp命令:
1、本地文件拷貝到遠(yuǎn)程服務(wù)器: scp 文件名 用戶名@計(jì)算機(jī)IP(或者計(jì)算機(jī)名稱):遠(yuǎn)程路徑
2、從遠(yuǎn)程服務(wù)器將文件拷回本地:scp 用戶名@計(jì)算機(jī)IP(或者計(jì)算機(jī)名稱):文件名本地路徑
3、將本地目錄拷貝到遠(yuǎn)程服務(wù)器:scp -r 目錄名 用戶名@計(jì)算機(jī)IP(或者計(jì)算機(jī)名稱):遠(yuǎn)程路徑
4、從遠(yuǎn)程服務(wù)器將目錄拷回本地:scp -r 用戶名@計(jì)算機(jī)IP或者(或者計(jì)算機(jī)名稱):目錄名本地路徑
我們需要把tmp.txt拷貝到B服務(wù)器下的/home/userB目錄,使用userB賬號(hào)
執(zhí)行上面的命令后,會(huì)要求輸入userB的密碼,正確輸入userB的密碼,文件會(huì)正確拷貝到B服務(wù)器的/home/userB目錄下
如果拷貝失敗,查看B服務(wù)器的/etc/ssh/sshd_config文件,關(guān)鍵配置
PasswordAuthentication yes
有可能這一項(xiàng)設(shè)置成了no
若這個(gè)sshd_config有修改,則需要重啟sshd
service sshd restart
2.使用useA登錄到A機(jī)器上,執(zhí)行命令
ssh-keygen -t rsa -P ""
這個(gè)命令用來生成基于userA用戶的A服務(wù)器的秘鑰對(duì)
-P "" 表示不設(shè)置密碼
命令執(zhí)行后,一路按回車,直到執(zhí)行完成。
此時(shí),在userA的用戶目錄下,會(huì)生成一個(gè) .ssh目錄,這個(gè)目錄是隱藏的,直接ls是無法看到的,
cd /home/userA/.ssh
ls
可以看到生成的兩個(gè)文件 id_rsa id_rsa.pub
id_rsa 這個(gè)叫私鑰
id_rsa.pub 這個(gè)叫公鑰
3.將 id_rsa.pub 拷貝到 B機(jī)器上,可以通過自己電腦的中轉(zhuǎn)拷貝,也可以用上面的scp命令拷貝
然后,到B機(jī)器上,執(zhí)行命令:
cat id_rsa.pub >> /homg/userB/.ssh/authorized_keys
命令的意思就是將 id_rsa.pub 的內(nèi)容,追加到authorized_keys這個(gè)文件中
為何是追加呢,因?yàn)槿绻卸嗯_(tái)服務(wù)器要建立到B機(jī)器的免密登錄,都需要將公鑰寫到這個(gè)文件里
為何我們要采用這種方式寫入,而不是直接拷貝公鑰內(nèi)容過來呢
因?yàn)橛袝r(shí)候在拷貝過程會(huì)出問題,比如換行,空格等等
直接通過命令追加,能夠避免這些問題
通過命令
cat id_rsa.pub
cat /homg/userB/.ssh/authorized_keys
查看是否正確追加
4.在A機(jī)器上,執(zhí)行
scp tmp.txt userB@192.168.1.2:/home/userB
如果沒有要求輸入密碼,就執(zhí)行成功,則證明配置成功,如果還是需要密碼,參考下面第五步
5.首先,查看B服務(wù)器的/etc/ssh/sshd_config文件,關(guān)鍵字PubkeyAuthentication 確保這個(gè)值是 yes
若這個(gè)sshd_config有修改,則需要重啟sshd
service sshd restart
然后,使用命令
ls -l
查看B服務(wù)器文件及文件夾的權(quán)限
/home/userB 文件夾的權(quán)限為 700,即 顯示的權(quán)限應(yīng)該是 drwx------
/home/userB/.ssh文件夾的權(quán)限也為700
/home/userB/.ssh/authorized_keys 文件權(quán)限為600,即,顯示的權(quán)限應(yīng)該是 -rw-------
如果不是上述權(quán)限,使用命令chmod來修改
命令示例
chmod 700 /home/userB
設(shè)置完成后,在A服務(wù)器使用scp命令測(cè)試,如果還是無法免密,在A服務(wù)器上執(zhí)行命令
ssh -vvv userB@192.168.1.2
最后的ip是B服務(wù)器的ip地址
執(zhí)行完成后,會(huì)得到一長串的打印輸出,查看錯(cuò)誤,然后百度吧。。。