精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SSH遠(yuǎn)程操作的基本方式

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

SSH 是 Linux 下進(jìn)行遠(yuǎn)程連接的基本工具,但是如果僅僅用它來登錄那可是太浪費(fèi)啦!SSH 命令可是完成遠(yuǎn)程操作的神器啊,借助它我們可以把很多的遠(yuǎn)程操作自動(dòng)化掉!下面就對(duì) SSH 的遠(yuǎn)程操作功能進(jìn)行一個(gè)小小的總結(jié)。

遠(yuǎn)程執(zhí)行命令

如果我們要查看一下某臺(tái)主機(jī)的磁盤使用情況,是不是必須要登錄到目標(biāo)主機(jī)上才能執(zhí)行 df 命令呢?當(dāng)然不是的,我們可以使用 ssh 命令在遠(yuǎn)程的主機(jī)上執(zhí)行 df 命令,然后直接把結(jié)果顯示出來。整個(gè)過程就像是在本地執(zhí)行了一條命令一樣:

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

那么如何一次執(zhí)行多條命令呢?其實(shí)也很簡(jiǎn)單,使用分號(hào)把不同的命令隔起來就 OK 了:

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

第一條命令返回的結(jié)果:/home/nick
這說明用這種方式執(zhí)行命令時(shí)的當(dāng)前目錄就是登陸用戶的家目錄。
第二條命令返回 hello.txt 文件的內(nèi)容。
注意,當(dāng)命令多于一個(gè)時(shí)最好用引號(hào)括起來,否則在有的系統(tǒng)中除了第一個(gè)命令,其它都是在本地執(zhí)行的。

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

執(zhí)行需要交互的命令

有時(shí)候我們需要遠(yuǎn)程執(zhí)行一些有交互操作的命令。

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

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

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

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

作為總結(jié),我們看看 -t 參數(shù)的官方解釋:
"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."
好吧,更強(qiáng)悍的是我們居然可以指定多個(gè) -t 參數(shù)!

執(zhí)行多行的命令

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

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

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

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

當(dāng)我們?cè)诿钪幸昧俗兞繒r(shí)會(huì)怎么樣呢?

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

請(qǐng)注意上圖中的最后一行,并沒有輸出我們期望的 nick。這里多少有些詭異,因?yàn)槿绻兞繘]有被解釋的話,輸出的應(yīng)該是 $name 才對(duì)。但是這里卻什么都沒有輸出。
對(duì)于引用變量的寫法,可以通過下面的方式保證變量被正確解釋:

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

注意,我們?cè)谏蠄D的命令中為 bash 指定了 -c 參數(shù)。

遠(yuǎn)程執(zhí)行腳本

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

執(zhí)行本地的腳本

我們?cè)诒镜貏?chuàng)建一個(gè)腳本文件 test.sh,內(nèi)容為:

ls
pwd

然后運(yùn)行下面的命令:

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

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

通過重定向 stdin,本地的腳本 test.sh 在遠(yuǎn)程服務(wù)器上被執(zhí)行。

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

echo $0
echo $1

然后嘗試執(zhí)行下面的命令:

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

下圖顯示了執(zhí)行的結(jié)果:

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

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

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

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

在上圖的最后兩行,輸出的是 "bash" 和 "helloworld" 分別對(duì)應(yīng) $0 和 $1。

執(zhí)行遠(yuǎn)程服務(wù)器上的腳本

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

ls
pwd

執(zhí)行下面的命令:

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

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

注意,此時(shí)需要指定腳本的絕對(duì)路徑!

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

echo $0
echo $1

然后嘗試執(zhí)行下面的命令:

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

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

真棒,最后兩行 "/home/nick/test.sh" 和 "helloworld" 分別對(duì)應(yīng) $0 和 $1。

總結(jié)

本文通過 demo 演示了 ssh 遠(yuǎn)程操作的基本方式。這些基本用法將為我們?cè)诟鼜?fù)雜的場(chǎng)景中完成各種艱巨的任務(wù)打下基礎(chǔ)。

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11225

    瀏覽量

    208914
  • 磁盤
    +關(guān)注

    關(guān)注

    1

    文章

    366

    瀏覽量

    25176
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    678

    瀏覽量

    21984
  • SSH
    SSH
    +關(guān)注

    關(guān)注

    0

    文章

    185

    瀏覽量

    16299

原文標(biāo)題:SSH 遠(yuǎn)程執(zhí)行任務(wù)

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

    首先說下,一般linux開發(fā)板ssh遠(yuǎn)程登錄是很基本的操作,因?yàn)楦鲁绦颍螺d配置都需要這個(gè)步驟,但是按照常規(guī)操作,龍芯蜂鳥開發(fā)板死活ssh
    發(fā)表于 08-12 22:16

    如何使用SSH遠(yuǎn)程命令登錄香橙派開發(fā)板

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

    怎樣去搭建一種Window SSH遠(yuǎn)程開發(fā)環(huán)境

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

    如何使用ssh遠(yuǎn)程登錄虛擬機(jī)?

    我pc上安裝的虛擬機(jī)和pc可以互相ping通,但是使用ssh遠(yuǎn)程登錄時(shí),不用名輸入root或forlinx,都不能遠(yuǎn)程登錄,請(qǐng)問該怎么實(shí)現(xiàn)遠(yuǎn)程登錄?PS:我是用的是飛凌提供的虛擬機(jī),在
    發(fā)表于 11-25 06:15

    【觸覺智能 Purple Pi OH 開發(fā)板體驗(yàn)】無網(wǎng)絡(luò)狀態(tài)連接ssh解決辦法

    工具,用戶可以圖形化地輸入目標(biāo)主機(jī)的地址和登錄憑證,實(shí)現(xiàn)SSH連接。 SSH密鑰認(rèn)證: 使用SSH密鑰對(duì)進(jìn)行連接是一種更安全的方式。用戶需要生成公鑰和私鑰,并將公鑰添加到
    發(fā)表于 08-20 12:38

    設(shè)置面向LSF 和SSH遠(yuǎn)程服務(wù)器群設(shè)備

    使用 DSE II 在 Quartus Prime 中設(shè)置面向 LSF 和SSH遠(yuǎn)程服務(wù)器群設(shè)備
    的頭像 發(fā)表于 06-22 04:37 ?4199次閱讀
    設(shè)置面向LSF 和<b class='flag-5'>SSH</b> 的<b class='flag-5'>遠(yuǎn)程</b>服務(wù)器群設(shè)備

    如何配置銳捷SSH遠(yuǎn)程登陸?

    華為交換機(jī)配置Telnet遠(yuǎn)程登陸,有很多朋友就問到了關(guān)于ssh遠(yuǎn)程登陸的方法,現(xiàn)在telnet 的遠(yuǎn)程登錄方式企業(yè)用的不多,
    的頭像 發(fā)表于 03-21 11:07 ?1.4w次閱讀

    【米爾MYD-J1028X開發(fā)板試用體驗(yàn)】實(shí)現(xiàn)SSH遠(yuǎn)程登錄,系統(tǒng)測(cè)評(píng)

    本文來源電子發(fā)燒友社區(qū),作者:mameng, 帖子地址: https://bbs.elecfans.com/jishu_2308785_1_1.html ? 開發(fā)板 默認(rèn)沒有開啟SSH遠(yuǎn)程登錄
    的頭像 發(fā)表于 10-25 11:24 ?1100次閱讀
    【米爾MYD-J1028X開發(fā)板試用體驗(yàn)】實(shí)現(xiàn)<b class='flag-5'>SSH</b><b class='flag-5'>遠(yuǎn)程</b>登錄,系統(tǒng)測(cè)評(píng)

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

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

    SSH第1部分:配置SSH以安全連接到遠(yuǎn)程設(shè)備

    Secure Shell (SSH) 協(xié)議通常用于遠(yuǎn)程管理,因?yàn)樗诳蛻舳撕?b class='flag-5'>遠(yuǎn)程設(shè)備之間提供加密連接,并在兩個(gè)系統(tǒng)之間啟用加密的雙向通信路徑。幾十年來,開發(fā)人員一直依靠 SSH 協(xié)議與
    的頭像 發(fā)表于 01-03 09:45 ?1231次閱讀

    SSH命令詳解

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

    SSH/Telnet設(shè)備遠(yuǎn)程登錄方式實(shí)際綜合運(yùn)用

    SSH和Telnet都是遠(yuǎn)程連接控制協(xié)議,在網(wǎng)絡(luò)技術(shù)的應(yīng)用中常被用于遠(yuǎn)程連接控制路由器和交換機(jī),方便工程師遠(yuǎn)程對(duì)設(shè)備進(jìn)行運(yùn)營(yíng)維護(hù)。
    發(fā)表于 06-11 09:12 ?1215次閱讀
    <b class='flag-5'>SSH</b>/Telnet設(shè)備<b class='flag-5'>遠(yuǎn)程</b>登錄<b class='flag-5'>方式</b>實(shí)際綜合運(yùn)用

    如何配置交換機(jī)SSH遠(yuǎn)程登錄?

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

    遠(yuǎn)程數(shù)據(jù)容災(zāi)方式類型與操作

    電子發(fā)燒友網(wǎng)站提供《遠(yuǎn)程數(shù)據(jù)容災(zāi)方式類型與操作.doc》資料免費(fèi)下載
    發(fā)表于 10-25 09:52 ?0次下載
    <b class='flag-5'>遠(yuǎn)程</b>數(shù)據(jù)容災(zāi)<b class='flag-5'>方式</b>類型與<b class='flag-5'>操作</b>

    SSH端口號(hào)是什么?SSH是如何工作的?

    SSH(Secure Shell,安全外殼)是一種網(wǎng)絡(luò)安全協(xié)議,通過加密和認(rèn)證機(jī)制實(shí)現(xiàn)安全的訪問和文件傳輸?shù)葮I(yè)務(wù)。傳統(tǒng)遠(yuǎn)程登錄或文件傳輸方式,例如Telnet、FTP,使用明文傳輸數(shù)據(jù),存在很多
    的頭像 發(fā)表于 11-10 10:06 ?2664次閱讀
    <b class='flag-5'>SSH</b>端口號(hào)是什么?<b class='flag-5'>SSH</b>是如何工作的?