ssh遠端執行命令

2022-06-11 02:03:08 字數 1131 閱讀 4304

1.遠端執行普通命令

ssh username@ip "cmd1;cmd2"  多條命令間用分號分割

ssh -l username 192.168.1.1等同於  ssh  [email protected]

2.遠端執行需要互動的命令

例如top命令,直接執行ssh username@ip "top"會報term environment variable not set.的錯誤

解決方式是使用引數 -t,使用引數 -t可以顯式的告訴 ssh,我們需要乙個 tty 遠端 shell 進行互動。新增 -t 引數後,ssh 會保持登入狀態,直到你退出需要互動的命令。

cmd中的幾種特殊情況:

3.在遠端機器中執行本地指令碼

在本地建立乙個指令碼test1.sh,假設內容為ls\npwd

執行ssh username@ip < test1.sh即可,通過重定向 stdin,本地的指令碼 test.sh 在遠端伺服器上被執行。

如果本地指令碼中需要傳參,執行ssh username@ip -p$'bash -s'< test1.sh hello world即可

test1.sh的內容為

執行ssh username@ip -p$'bash -s'< test1.sh hello world後的輸出為:

設定本地機器免密登入遠端機器的方法:ssh username@ip 'mkdir -p .ssh&&cat >>.ssh/authorized_keys' < ~/.ssh/id_rsa.pu

4.執行遠端機器中的指令碼

遠端機器中有乙個指令碼/home/user/a.sh,需要在本地操作遠端機器執行指令碼a.sh,需要執行ssh username@ip -p$ "/home/roaddb/a.sh"

注意指定指令碼為全路徑

如果要傳參,則直接在指令碼後加上引數即可,即ssh username@ip -p$ "/home/roaddb/a.sh  hello world"

aa.sh的內容為

輸出為:

ssh遠端執行命令

使用ssh不僅可以登入到遠端的linux主機,還可以執行命令。如果是要登入到遠端linux主機,那麼使用下面的命令 ssh username remoteip example ssh hduser 192.168.0.1 這個將開啟乙個登入到遠端主機192.168.0.1的login shell如果...

模擬ssh遠端執行命令

目錄python從入門到放棄完整教程目錄 from socket import import subprocess server socket af inet,sock stream server.bind 127.0.0.1 8000 server.listen 5 print start.whi...

模擬ssh遠端執行命令

from socket import import subprocess server socket af inet,sock stream server.bind 127.0.0.1 8000 server.listen 5 print start.while true conn,client a...