在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SSH遠程操作的基本方式

馬哥Linux運維 ? 來源:博客園sparkdev ? 2024-11-11 11:15 ? 次閱讀

SSH 是 Linux 下進行遠程連接的基本工具,但是如果僅僅用它來登錄那可是太浪費啦!SSH 命令可是完成遠程操作的神器啊,借助它我們可以把很多的遠程操作自動化掉!下面就對 SSH 的遠程操作功能進行一個小小的總結。

遠程執行命令

如果我們要查看一下某臺主機的磁盤使用情況,是不是必須要登錄到目標主機上才能執行 df 命令呢?當然不是的,我們可以使用 ssh 命令在遠程的主機上執行 df 命令,然后直接把結果顯示出來。整個過程就像是在本地執行了一條命令一樣:

$ ssh nick@xxx.xxx.xxx.xxx "df -h"

那么如何一次執行多條命令呢?其實也很簡單,使用分號把不同的命令隔起來就 OK 了:

$ ssh nick@xxx.xxx.xxx.xxx "pwd; cat hello.txt"

第一條命令返回的結果:/home/nick
這說明用這種方式執行命令時的當前目錄就是登陸用戶的家目錄。
第二條命令返回 hello.txt 文件的內容。
注意,當命令多于一個時最好用引號括起來,否則在有的系統中除了第一個命令,其它都是在本地執行的。

198ba906-9061-11ef-a511-92fbcf53809c.png

執行需要交互的命令

有時候我們需要遠程執行一些有交互操作的命令。

$ ssh nick@xxx.xxx.xxx.xxx "sudo ls /root"
$ ssh nick@xxx.xxx.xxx.xxx "top"

1997673c-9061-11ef-a511-92fbcf53809c.png

這兩條命令雖然提示的失敗原因不同,但它們有一個共同點:都需要與用戶交互(需要 TTY)。所以它們失敗的原因也是相同的:
默認情況下,當你執行不帶命令的 ssh 連接時,會為你分配一個 TTY。因為此時你應該是想要運行一個 shell 會話。
但是當你通過 ssh 在遠程主機上執行命令時,并不會為這個遠程會話分配 TTY。此時 ssh 會立即退出遠程主機,所以需要交互的命令也隨之結束。
好在我們可以通過 -t 參數顯式的告訴 ssh,我們需要一個 TTY 遠程 shell 進行交互!
添加 -t 參數后,ssh 會保持登錄狀態,直到你退出需要交互的命令。

19bbf304-9061-11ef-a511-92fbcf53809c.png

作為總結,我們看看 -t 參數的官方解釋:
"Force pseudo-terminal 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."
好吧,更強悍的是我們居然可以指定多個 -t 參數!

執行多行的命令

有時候我們可能需要隨手寫幾行簡單的邏輯,這也沒有問題,ssh 能輕松搞定!

19d2d2f4-9061-11ef-a511-92fbcf53809c.png

你可以用單引號或雙引號開頭,然后寫上幾行命令,最后再用相同的引號來結束。
那么如果需要在命令中使用引號該怎么辦?
其實針對類似的情況有一條比較通用的規則,就是混合使用單雙引號。這條規則在這里也是適用的:

19eb956e-9061-11ef-a511-92fbcf53809c.png

當我們在命令中引用了變量時會怎么樣呢?

1a088a70-9061-11ef-a511-92fbcf53809c.png

請注意上圖中的最后一行,并沒有輸出我們期望的 nick。這里多少有些詭異,因為如果變量沒有被解釋的話,輸出的應該是 $name 才對。但是這里卻什么都沒有輸出。
對于引用變量的寫法,可以通過下面的方式保證變量被正確解釋:

1a28ee5a-9061-11ef-a511-92fbcf53809c.png

注意,我們在上圖的命令中為 bash 指定了 -c 參數。

遠程執行腳本

對于要完成一些復雜功能的場景,如果是僅僅能執行幾個命令的話,簡直是弱爆了。我們可能需要寫長篇累牘的 shell 腳本去完成某項使命!此時 SSH 依然是不辱使命的好幫手(哈哈,前面的內容僅僅是開胃菜啊!)。

執行本地的腳本

我們在本地創建一個腳本文件 test.sh,內容為:

ls
pwd

然后運行下面的命令:

$ ssh nick@xxx.xxx.xxx.xxx < test.sh

1a3d5e62-9061-11ef-a511-92fbcf53809c.png

通過重定向 stdin,本地的腳本 test.sh 在遠程服務器上被執行。

接下來我們我期望能為腳本 test.sh 傳遞一個參數,為了驗證傳入的參數,在 test.sh 文件的末尾添加兩行:

echo $0
echo $1

然后嘗試執行下面的命令:

$ ssh nick@xxx.xxx.xxx.xxx < test.sh helloworld
$ ssh nick@xxx.xxx.xxx.xxx < "test.sh helloworld"

下圖顯示了執行的結果:

1a5eda2e-9061-11ef-a511-92fbcf53809c.png

看來上面的方法都無法為腳本傳遞參數。
要想在這種情況下(遠程執行本地的腳本)執行帶有參數的腳本,需要為 bash 指定 -s 參數:

$ ssh nick@xxx.xxx.xxx.xxx 'bash -s' < test.sh helloworld

1a74190c-9061-11ef-a511-92fbcf53809c.png

在上圖的最后兩行,輸出的是 "bash" 和 "helloworld" 分別對應 $0 和 $1。

執行遠程服務器上的腳本

除了執行本地的腳本,還有一種情況是腳本文件存放在遠程服務器上,而我們需要遠程的執行它!
此時在遠程服務器上用戶 nick 的家目錄中有一個腳本 test.sh。文件的內容如下:

ls
pwd

執行下面的命令:

$ ssh nick@xxx.xxx.xxx.xxx "/home/nick/test.sh"

1a82a31e-9061-11ef-a511-92fbcf53809c.png

注意,此時需要指定腳本的絕對路徑!

下面我們也嘗試為腳本傳遞參數。在遠程主機上的 test.sh 文件的末尾添加兩行:

echo $0
echo $1

然后嘗試執行下面的命令:

$ ssh nick@xxx.xxx.xxx.xxx /home/nick/test.sh helloworld

1a9bcdbc-9061-11ef-a511-92fbcf53809c.png

真棒,最后兩行 "/home/nick/test.sh" 和 "helloworld" 分別對應 $0 和 $1。

總結

本文通過 demo 演示了 ssh 遠程操作的基本方式。這些基本用法將為我們在更復雜的場景中完成各種艱巨的任務打下基礎。

鏈接:https://www.cnblogs.com/sparkdev/p/6842805.html

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11351

    瀏覽量

    210497
  • 磁盤
    +關注

    關注

    1

    文章

    380

    瀏覽量

    25294
  • 命令
    +關注

    關注

    5

    文章

    697

    瀏覽量

    22126
  • SSH
    SSH
    +關注

    關注

    0

    文章

    189

    瀏覽量

    16414

原文標題:SSH 遠程執行任務

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【龍芯2K0300蜂鳥板試用】遠程SSH登錄問題解決

    首先說下,一般linux開發板ssh遠程登錄是很基本的操作,因為更新程序,下載配置都需要這個步驟,但是按照常規操作,龍芯蜂鳥開發板死活ssh
    發表于 08-12 22:16

    如何使用SSH遠程命令登錄香橙派開發板

    地址為了遠程登錄香橙派開發板,首先需要獲取開發板的 IP 地址。我們可以通過串口來查看。3.使用 ssh 遠程登錄香橙派開發板3.1使用 xshell 新建一個 ssh 連接名稱:輸
    發表于 05-22 17:16

    路由器方案板香橙派R1 Plus如何使用SSH遠程登錄

    ,并且允許 root 用戶登錄系統。ssh 登錄前首先需要確保以太網已連接,然后使用 ifconfig 命令或者通過查看路由器的 方式獲取開發板的 IP 地址。1. Ubuntu 下 SSH
    發表于 05-11 18:07

    怎樣去搭建一種Window SSH遠程開發環境

    - SSH 插件點擊左下角的遠程窗口,選擇 Connect to Host按照提示完成操作即可享受遠程開發效果圖Jetbrains使用此遠程
    發表于 09-19 16:31

    如何使用ssh遠程登錄虛擬機?

    我pc上安裝的虛擬機和pc可以互相ping通,但是使用ssh遠程登錄時,不用名輸入root或forlinx,都不能遠程登錄,請問該怎么實現遠程登錄?PS:我是用的是飛凌提供的虛擬機,在
    發表于 11-25 06:15

    【觸覺智能 Purple Pi OH 開發板體驗】無網絡狀態連接ssh解決辦法

    工具,用戶可以圖形化地輸入目標主機的地址和登錄憑證,實現SSH連接。 SSH密鑰認證: 使用SSH密鑰對進行連接是一種更安全的方式。用戶需要生成公鑰和私鑰,并將公鑰添加到
    發表于 08-20 12:38

    設置面向LSF 和SSH遠程服務器群設備

    使用 DSE II 在 Quartus Prime 中設置面向 LSF 和SSH遠程服務器群設備
    的頭像 發表于 06-22 04:37 ?4288次閱讀
    設置面向LSF 和<b class='flag-5'>SSH</b> 的<b class='flag-5'>遠程</b>服務器群設備

    如何配置銳捷SSH遠程登陸?

    華為交換機配置Telnet遠程登陸,有很多朋友就問到了關于ssh遠程登陸的方法,現在telnet 的遠程登錄方式企業用的不多,
    的頭像 發表于 03-21 11:07 ?1.4w次閱讀

    SSH第3部分:配置SSH反向隧道以減少暴露的端口

    命令行工具安全外殼 (SSH) 在客戶端和服務器之間提供安全的通信通道。工程師和操作員經常使用 SSH 遠程管理他們的設備和主機。例如,通常使用 S
    的頭像 發表于 01-03 09:45 ?3311次閱讀
    <b class='flag-5'>SSH</b>第3部分:配置<b class='flag-5'>SSH</b>反向隧道以減少暴露的端口

    SSH第1部分:配置SSH以安全連接到遠程設備

    Secure Shell (SSH) 協議通常用于遠程管理,因為它在客戶端和遠程設備之間提供加密連接,并在兩個系統之間啟用加密的雙向通信路徑。幾十年來,開發人員一直依靠 SSH 協議與
    的頭像 發表于 01-03 09:45 ?1455次閱讀

    SSH命令詳解

    ssh是一種安全的遠程登錄及傳輸協議。ssh可用于遠程登錄、遠程文件傳輸等。ssh是安全的she
    的頭像 發表于 06-02 10:00 ?1.7w次閱讀
    <b class='flag-5'>SSH</b>命令詳解

    SSH/Telnet設備遠程登錄方式實際綜合運用

    SSH和Telnet都是遠程連接控制協議,在網絡技術的應用中常被用于遠程連接控制路由器和交換機,方便工程師遠程對設備進行運營維護。
    發表于 06-11 09:12 ?1347次閱讀
    <b class='flag-5'>SSH</b>/Telnet設備<b class='flag-5'>遠程</b>登錄<b class='flag-5'>方式</b>實際綜合運用

    如何配置交換機SSH遠程登錄?

    如何配置交換機SSH遠程登錄,本期我們就來了解下ssh遠程登陸的方式,以銳捷交換機為例。
    的頭像 發表于 08-02 09:35 ?3985次閱讀
    如何配置交換機<b class='flag-5'>SSH</b><b class='flag-5'>遠程</b>登錄?

    遠程數據容災方式類型與操作

    電子發燒友網站提供《遠程數據容災方式類型與操作.doc》資料免費下載
    發表于 10-25 09:52 ?0次下載
    <b class='flag-5'>遠程</b>數據容災<b class='flag-5'>方式</b>類型與<b class='flag-5'>操作</b>

    SSH端口號是什么?SSH是如何工作的?

    SSH(Secure Shell,安全外殼)是一種網絡安全協議,通過加密和認證機制實現安全的訪問和文件傳輸等業務。傳統遠程登錄或文件傳輸方式,例如Telnet、FTP,使用明文傳輸數據,存在很多
    的頭像 發表于 11-10 10:06 ?2894次閱讀
    <b class='flag-5'>SSH</b>端口號是什么?<b class='flag-5'>SSH</b>是如何工作的?
    主站蜘蛛池模板: 久久亚洲aⅴ精品网站婷婷 久久亚洲成人 | 久久美女性网 | 黄色xxxx | 天天干天天爱天天射 | 久久三级网站 | 噜噜嘿 | 国产情侣露脸 | 色播欧美 | www亚洲欲色成人久久精品 | 色婷婷久久合月综 | 手机看片1024手机在线观看 | 天堂网在线免费 | 久久久久久夜精品精品免费 | 国产一级αv片免费观看 | 日本护士69xx00 | 你懂得国产 | 亚洲欧美一区二区三区在线播放 | 国产专区青青草原亚洲 | 五月香婷婷| 九九精品久久久久久噜噜 | 2020av在线播放 | 亚洲欧美经典 | 免费大片黄国产在线观看 | 天天射日日干 | 色播四房间 | 91av成人| 美国色综合 | 女人张开腿让男人桶视频免费大全 | 91九色成人| 无码一区二区三区视频 | 第四色播日韩第一页 | 亚洲福利视频一区二区 | 天天噜日日噜夜夜噜 | 在线观看播放视频www | 伊人黄| 很黄很暴力 很污秽的小说 很黄很黄叫声床戏免费视频 | 自拍中文字幕 | 制服丝袜在线一区 | 午夜网站免费版在线观看 | 一级一级一片免费高清 | 99国产精品久久久久久久成人热 |