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...