centos實現免密登錄及遠程操做

----------------------------**********-------------------------------------------------bash

免密碼登錄服務器

第一步:ssh

執行:ssh-keygen -t rsa,並一直回車,直到結束

系統/root/.ssh/下面會生成 id_rsa(私鑰)和 id_rsa.pub(公鑰) 兩個文件

第二步:spa

進入到文件夾下面   cd /root/.ssh

把id_rsa.pub 拷貝到目標服務器的/root/.ssh(例如:目標服務器111.111.111.111)

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

出現提示輸入yes,並輸入目標服務器的密碼便可

第三步:code

登錄目標服務器,到 /root/.ssh目錄下面

執行:cat ./id_rsa.pub >> authorized_keys

到此,即完成免密登錄

在原目標的服務器執行 ssh root@111.111.111.111 便可登錄,無需輸入任何信息 之後,其它服務器,只須要執行第二步跟第三步,除非,原服務器生成的密鑰有變更,這樣均可以實現免密登錄

----------------------------**********-------------------------------------------------blog

遠程操做ip

 第一種:it

因爲上面已經實現免密碼登錄,因此能夠直接執行相應命令class

result=`ssh root@111.111.111.111 "cd /home;touch kkk.txt &> /dev/null;"'echo $?'`
echo $result

注意:result=後面是添加鍵盤上面跟  ~ 一塊兒的同按鍵   `  並非句號跟分號變量

第二種:

ssh root@111.111.111.111 > /dev/null  2>&1 << kkmmccc
cd /home
touch abcdefg.txt
exit
kkmmccc

遠程執行的命令在「<< kkmmccc」 至「 kkmmccc 」之間,kkmmcc能夠隨便替換,但必須保持開頭跟結尾一致,加exit是退出遠程,也可把此程序寫成一個sh文件直接執行

第三種:

帶有變量的操做,經過定義一個sh直接執行

#!/bin/bash
#遠程替換的源文件絕對路徑
sfile=/home/a.txt
#遠程替換的目標文件絕對路徑
dfile=/home/a.txt
#目標ip
dip=111.111.111.111
#目標端口
dport=22
#將要執行的命令
command="cd /home;touch ceshi.txt"
#進行遠程替換文件
scp -P ${dport} ${sfile} ${dip}:${dfile} &> /dev/null
#進行遠程執行命令
result=`ssh -p ${dport} root@${dip} "${command} &> /dev/null;"'echo $?'`
#判斷遠程執行命令是否成功,經過$result判斷
if [ $result -eq 0 ]; then
        echo "命令執行成功" 
else
        echo "命令執行失敗"
fi
相關文章
相關標籤/搜索