ssh調用遠程腳本
『壹』 shell腳本中怎麼ssh上遠程機執行命令
你好,
先在兩台機子上建立信任,ssh-key
具體方法網路下就有
腳本里的命令是
ssh 用戶@ip
『貳』 ssh登錄到遠端伺服器執行本地腳本,怎麼給腳本傳遞位置參數
首先要設置ssh信任 ----> 實現無密碼ssh登錄. 這個你可以自行搜索, 腳本非常簡單: ssh user@host "command $var"
『叄』 linux下如何使用ssh遠程登錄主機 執行shell腳本
知道linux的ip,用戶和密碼就可以遠程登陸了。在你的SSH
客戶端會有一個linux的終端。在這執行命令就可以了。
『肆』 如何使用python執行遠程shell腳本
pexpect復雜,但通用靈活。另外一種法就是ssh-keygen/ssh--id,實現自動密鑰驗證取代手動密碼驗證,然後就可以直接調用遠程『[email protected]』,麻煩之處在於要手動創建與維護兩台機器間的公鑰。至於捕獲輸出,還是要變通一點,既然B都登陸到A了,那麼通過臨時文件向A輸出內容不是更簡單嗎,這是shell編程中簡單有效的法。還可以使用sftp
『伍』 ssh如何遠程執行命令
ssh支持遠程命令參數 可以類似方式嵌套: alias pushbaby='cd /Users/xuqiang/Develop/work/tickets/baby/deploy;scp -r -v -i ~/.ssh/pedal/id_rsa baby.tar.gz baby.sql.txt [email protected]:/home/qiang.xu/tmp;ssh [email protected] -i ~/.ssh/pedal/id_rsa "source ~/.bash_profile;pushbaby";ssh [email protected] -i ~/.ssh/pedal/id_rsa "ssh [email protected] \"source ~/.bash_profile;pushbaby\""'更新要注意的是alias在非交互模式無法使用,需將替換成function
『陸』 教你如何通過ssh控制遠程主機,遠程執行命令
教你如何通過ssh控制遠程主機,遠程執行命令ssh控制遠程主機遠程執行命令這個分兩步,很簡單很實用。第一步,設置ssh免認證,免認證就是只不用密碼認證就可以直接登錄,這在寫腳本伺服器控制時特別有用。每二步,就是到遠端伺服器上去執行命令
假如現在有兩個伺服器,一個叫SA,另一個叫SB。現在我要在SA上去控制SB。
格式:ssh
SB_用戶名@SB_IP
命令for
example:ssh
[email protected]
echo
aaa>>hzs_test.txtssh
[email protected]
'echo
-e
haha/n
hoho
>>hzs_test.txt'
『柒』 ssh怎麼連接遠程伺服器
Mac端
打開Mac的終端 輸入ssh 用戶名@IP地址 -p 埠號,或者在程序塢中右鍵終端圖標,選擇新建遠程連接,選擇「安全Shell(ssh)」然後點擊右邊伺服器下面的加號,在輸入框中如遠程連接的伺服器的名稱或IP地址,然後點擊 好。在「安全Shell(ssh)」的伺服器就可以看見你剛才添加的伺服器,選中剛添加的伺服器 用戶輸入框中輸入遠程伺服器的用戶名,點擊連接。終端會新跳出一個窗口,輸入遠程伺服器的用戶密碼即可完成連接。
Win端
打開cmd 輸入ssh 用戶名@IP地址 -p 埠號,或者使用putty,xshell第三方工具
安卓端
下載juicessh根據提示完成
『捌』 怎麼通過ssh在遠程Host執行交互命令
ssh執行遠程操作
命令格式
復制代碼 代碼如下:
ssh -p $port $user@$p 'cmd'
$port : ssh連接埠號
$user: ssh連接用戶名
$ip:ssh連接的ip地址
cmd:遠程伺服器需要執行的操作
准備工作
基於公私鑰認證或者用戶名密碼認證能確保登錄到遠程local2伺服器(有點基本運維知識的人做這個事情都不是問題)
cmd如果是腳本,注意絕對路徑問題(相對路徑在遠程執行時就是坑)
不足
這個命令可以滿足我們大多數的需求,但是通常運維部署很多東西的時候需要root許可權,但是有幾處限制:
遠程伺服器local2禁止root用戶登錄
在遠程伺服器腳本里轉換身份用expect需要send密碼,這樣不夠安全
ssh的-t參數
復制代碼 代碼如下:
-t Force pseudo-tty allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.
中文翻譯一下:就是可以提供一個遠程伺服器的虛擬tty終端,加上這個參數我們就可以在遠程伺服器的虛擬終端上輸入自己的提權密碼了,非常安全
命令格式
復制代碼 代碼如下:
ssh -t -p $port $user@$ip 'cmd'
示例腳本
復制代碼 代碼如下:
#!/bin/bash
#變數定義
ip_array=("192.168.1.1" "192.168.1.2" "192.168.1.3")
user="test1"
remote_cmd="/home/test/1.sh"
#本地通過ssh執行遠程伺服器的腳本
for ip in ${ip_array[*]}
do
if [ $ip = "192.168.1.1" ]; then
port="7777"
else
port="22"
fi
ssh -t -p $port $user@$ip "remote_cmd"
done
這個方法還是很方便的,-t虛擬出一個遠程伺服器的終端,在多台伺服器同時部署時確實節約了不少時間啊!
『玖』 請教如何在Bash里調用ssh遠程執行命令
直接將所有可執行的各種命令寫在 bash 的 SHELL 腳本文件中即可。當然了,至於說該 SHELL 腳本文件是否可以執行?並不是說只要你的SHELL腳本文件中的命令都是可執行的,就能夠正確執行的。必須要使用命令:chmod +x my_shell.txt 將其修改成可執行許可權,且 SHELL 腳本文件中的每一個命令都是擁有 x 許可權(可執行許可權)的,才能夠在命令行狀態 $ 下面正常執行。
『拾』 shell本地腳本調用遠程腳本,當遠程腳本執行完再繼續執行本地腳本
#!/bin/bash
#調用expect腳本執行遠程sh
expect-c'
settimeout10000
spawnsshusr@ip
expect{
"yes/no"{send"yes ";exp_continue}
"*assword"{send"passwd "}
}
expect"#"
send"sh1 "
expect"#"
'
echo
ls-l
其中timeout時間需要設置足夠長,不然會連接超時斷掉。
或者你配置了rsh,可以把上面的expect過程替換成rsh [Host] [-l UserName] [-n] [Command]