1. 程式人生 > 其它 >使用ssh打通伺服器之間免密登入以及兩個伺服器之間檔案cp指令碼上加密碼

使用ssh打通伺服器之間免密登入以及兩個伺服器之間檔案cp指令碼上加密碼

技術標籤:java語言linuxsshjavacentos

作者:施自揚
微訊號:shiziyangwx

使用ssh打通伺服器之間免密登入以及檔案cp

環境:騰訊雲伺服器 A:伺服器是使用ssh命令的伺服器 ,B:伺服器是有檔案的伺服器想要跳轉到的伺服器

1、免密跳轉驗證

跳轉B伺服器命令

ssh root@172.21.16.2

輸入完上面的命令之後,會提示你輸入密碼,此時輸入密碼即可正常進入。(預設埠是22)

第一步:在 A 的./root/.ssh/目錄下,有兩個檔案:id_rsa.pub和id_rsa。前者是當前伺服器當前使用者的公鑰,後者是當前伺服器當前使用者的私鑰。如果沒有,則使用如下命令生成金鑰對:

ssh-keygen -t rsa

執行上面的命令以後,系統會出現一系列提示,可以一路回車。

第二步:金鑰傳到遠端伺服器的命令
ssh-copy-id -i ~/.ssh/id_rsa.pub {B伺服器賬號}@{B伺服器內網ip}

ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.21.16.2

第三步:驗證是否免密
ssh {B伺服器賬號}@{B伺服器內網ip}

ssh root@172.21.16.2

在這裡插入圖片描述
驗證成功!

2、複製功能

假如A、B都有SSH服務,現在在A的SSH裡
(一)從A複製到B (推過去)
scp -rp /{路徑}/{檔名稱} {B伺服器賬號}@{B伺服器內網ip}: /{路徑}

scp -rp /path/test.sh root@172.21.16.2:/path

(二)從B複製到A (拉過來)
scp -rp {B伺服器賬號}@{B伺服器內網ip}: /{路徑}/{檔名稱} /{路徑}

scp -rp root@172.21.16.2:/path/test.sh /path

(三)指令碼使用:
cp B伺服器的一個jar包 到A伺服器 指令碼上可以加上B伺服器的密碼
123456 是密碼

yum -y install expect
source /etc/profile
expect -c "
spawn scp -r root@172.21.16.2:/var/lib/jenkins/
workspace/k8s-dataapi/target/d-dataApi-1.0-SNAPSHOT.jar /home/harbor/images/dataApi expect { \"*assword\" { set timeout 300; send \"123456\r\"; } \"yes/no\" { send \"yes\r\"; exp_continue;} } expect eof"