成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

通過 SSH 在遠(yuǎn)程 Linux 系統(tǒng)上執(zhí)行命令

系統(tǒng) Linux
通過安全的網(wǎng)絡(luò)連接在遠(yuǎn)程計(jì)算機(jī)上調(diào)用命令或程序。

有一天,我正在測試如何在 ??將文件或目錄復(fù)制到多個位置和系統(tǒng)時保持完整的文件權(quán)限??。當(dāng)我想檢查遠(yuǎn)程系統(tǒng)上的文件權(quán)限時,我必須通過 SSH 登錄它并檢查屬性。從遠(yuǎn)程系統(tǒng)多次登錄和注銷的過程讓我有點(diǎn)煩,我想,如果我可以在遠(yuǎn)程 Linux 系統(tǒng)上通過 SSH 執(zhí)行命令就好了。

幸運(yùn)的是,在瀏覽了 ??ssh?? 命令的手冊頁后,我找到了一個解決辦法。

如果你想知道如何本地運(yùn)行遠(yuǎn)程系統(tǒng)上運(yùn)行命令或腳本,而不登錄到遠(yuǎn)程系統(tǒng),下面的內(nèi)容會告訴你如何做。

1、通過 SSH 在遠(yuǎn)程 Linux 系統(tǒng)上執(zhí)行命令

從本地系統(tǒng)通過 SSH 在遠(yuǎn)程系統(tǒng)上運(yùn)行命令或腳本的典型方法是:

$ ssh <username@IP_Address-or-Doman_name> <Command-or-Script>

允許我給你們舉幾個例子:

1.1、通過 SSH 在遠(yuǎn)程系統(tǒng)上運(yùn)行單個命令

假設(shè)你想要 ??查找遠(yuǎn)程 Linux 系統(tǒng)的內(nèi)核詳細(xì)信息??。為此,只需運(yùn)行:

$ ssh sk@192.168.225.22 uname -a

這里,

  • ??sk?? 是遠(yuǎn)程系統(tǒng)的用戶名,
  • ??192.168.225.22?? 是遠(yuǎn)程系統(tǒng)的 IP 地址,
  • ??uname -a?? 是我想在遠(yuǎn)程系統(tǒng)上運(yùn)行的命令。

示例輸出:

通過 SSH 在遠(yuǎn)程 Linux 系統(tǒng)上執(zhí)行命令

看到?jīng)]?我并沒有實(shí)際登錄到遠(yuǎn)程系統(tǒng),但通過 SSH 在遠(yuǎn)程系統(tǒng)上執(zhí)行了 ??uname?? 命令,并在本地系統(tǒng)的終端上顯示了輸出。

你還可以像下面這樣用引號指定命令。

$ ssh sk@192.168.225.22 "uname -a"

或者,

$ ssh sk@192.168.225.22 'uname -a'

如果你已經(jīng) ??更改了 SSH 協(xié)議的默認(rèn)端口??,只需使用 ??-p?? 參數(shù)指定它。

$ ssh -p 2200 sk@192.168.225.22 uname -a

1.2、通過 SSH 在遠(yuǎn)程主機(jī)上執(zhí)行多個命令

你還可以在遠(yuǎn)程主機(jī)上運(yùn)行多個命令,方法是將它們放在引號中。

$ ssh sk@192.168.225.22 "uname -r && lsb_release -a"

或者:

$ ssh sk@192.168.225.22 "uname -r ; lsb_release -a"

上面的命令將顯示我的 Ubuntu 服務(wù)器的內(nèi)核版本和發(fā)行版詳細(xì)信息。

示例輸出:

在 Linux 上通過 SSH 在遠(yuǎn)程主機(jī)上運(yùn)行多個命令

正如一位讀者在下面的評論部分提到的那樣,你應(yīng)該用引號指定多個命令。如果不使用引號,第一個命令將在遠(yuǎn)程系統(tǒng)上執(zhí)行,第二個命令將僅在本地計(jì)算機(jī)上執(zhí)行。整個帶引號的命令將按預(yù)期在遠(yuǎn)程計(jì)算機(jī)上運(yùn)行。

提示: 了解 ??&&?? 和 ??;?? 在命令中的區(qū)別:

??&&?? 操作符只有在第一個命令成功時才執(zhí)行第二個命令。

示例:

  1. sudo apt-get update && sudo apt-get upgrade

在上述示例中,如果第一個命令成功,才會執(zhí)行 ??sudo apt-get upgrade??。否則,它將不會運(yùn)行。

??;?? 操作符會執(zhí)行第二個命令,無論第一個命令是成功還是失敗。

示例:

  1. sudo apt-get update ; sudo apt-get upgrade

在上述示例中,即使第一個命令失敗,??sudo apt-get upgrade?? 也會執(zhí)行。

1.3、通過 SSH 在遠(yuǎn)程機(jī)器上調(diào)用有 sudo 權(quán)限的命令

有些命令需要 ??sudo?? 權(quán)限才能運(yùn)行。例如,以下命令將在我的遠(yuǎn)程系統(tǒng)上安裝 ??apache2??。

$ ssh -t sk@192.168.225.22 sudo apt install apache2

示例輸出:

通過 SSH 在遠(yuǎn)程機(jī)器上運(yùn)行有 Sudo 權(quán)限的命令

注意到了嗎?我在上面的命令中使用了 ??-t?? 標(biāo)志,我們需要使用它來強(qiáng)制進(jìn)行偽終端分配。它用于在遠(yuǎn)程機(jī)器上執(zhí)行任意基于屏幕的程序,這非常有用。例如,在實(shí)現(xiàn)菜單服務(wù)時。

另外,我輸入了兩次密碼。第一次是遠(yuǎn)程用戶的密碼,以便從本地系統(tǒng)通過 SSH 訪問遠(yuǎn)程系統(tǒng),第二次是為了向遠(yuǎn)程用戶賦予 sudo 權(quán)限,以便安裝應(yīng)用程序(在本例中為 apache2)。

讓我們用以下命令檢查 Apache 服務(wù)是否正在運(yùn)行:

$ ssh -t sk@192.168.225.22 sudo systemctl status apache2sk@192.168.225.22's password: [sudo] password for sk: ● apache2.service - The Apache HTTP ServerLoaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)Drop-In: /lib/systemd/system/apache2.service.d└─apache2-systemd.confActive: active (running) since Thu 2019-12-19 11:08:03 UTC; 52s agoMain PID: 5251 (apache2)Tasks: 55 (limit: 2318)CGroup: /system.slice/apache2.service├─5251 /usr/sbin/apache2 -k start├─5253 /usr/sbin/apache2 -k start└─5254 /usr/sbin/apache2 -k startDec 19 11:08:03 ubuntuserver systemd[1]: Starting The Apache HTTP Server...Dec 19 11:08:03 ubuntuserver apachectl[5227]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 2409:4072:51f:a1b6:a00:27ff:fDec 19 11:08:03 ubuntuserver systemd[1]: Started The Apache HTTP Server.

同樣的,我們可以通過 SSH 在本地系統(tǒng)上運(yùn)行遠(yuǎn)程系統(tǒng)上的任何命令或腳本。

1.4、通過 SSH 在遠(yuǎn)程系統(tǒng)上運(yùn)行本地腳本

讓我們在本地系統(tǒng)上創(chuàng)建一個簡單的腳本來顯示關(guān)于遠(yuǎn)程系統(tǒng)的發(fā)行版名稱、包管理和基本細(xì)節(jié)等。

$ vi system_information.sh

添加以下行:

#!/bin/bash#Name: Display System Details#Owner: OSTechNIx#----------------------------echo /etc/*_ver* /etc/*-rel*; cat /etc/*_ver* /etc/*-rel*

按下 ??ESC?? 鍵,輸入 ??:wq?? 保存退出。

現(xiàn)在,通過 SSH 命令在遠(yuǎn)程系統(tǒng)上運(yùn)行這個腳本:

$ ssh sk@192.168.225.22 'bash -s' < system_information.sh

示例輸出:

sk@192.168.225.22's password: /etc/debian_version /etc/lsb-release /etc/os-releasebuster/sidDISTRIB_ID=UbuntuDISTRIB_RELEASE=18.04DISTRIB_CODENAME=bionicDISTRIB_DESCRIPTION="Ubuntu 18.04.2 LTS"NAME="Ubuntu"VERSION="18.04.2 LTS (Bionic Beaver)"ID=ubuntuID_LIKE=debianPRETTY_NAME="Ubuntu 18.04.2 LTS"VERSION_ID="18.04"HOME_URL="https://www.ubuntu.com/"SUPPORT_URL="https://help.ubuntu.com/"BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"VERSION_CODENAME=bionicUBUNTU_CODENAME=bionic

如果你沒有在上面的命令中指定 ??bash -s??,你將獲得遠(yuǎn)程系統(tǒng)的詳細(xì)信息,但偽終端不會被分配。

1.5、將遠(yuǎn)程主機(jī)的命令輸出保存到本地主機(jī)

如果你希望與支持團(tuán)隊(duì)或同事共享遠(yuǎn)程系統(tǒng)上運(yùn)行的命令輸出,那么這非常有用。

以下命令將通過 SSH 在遠(yuǎn)程系統(tǒng)運(yùn)行 ??du -ah??,并將輸出保存在本地系統(tǒng)的 ??diskusage.txt?? 文件中。

$ ssh sk@192.168.225.22 du -ah > diskusage.txt

然后,你可以通過使用 ??cat?? 命令或文本編輯器查看 ??diskusage.txt?? 文件來分析磁盤使用細(xì)節(jié)。

$ cat diskusage.txt 4.0K ./.profile4.0K ./.gnupg/private-keys-v1.d8.0K ./.gnupg76K ./data/image.jpg128K ./data/file.pdf20K ./data/text.docx5.9M ./data/audio.mp36.1M ./data0 ./.sudo_as_admin_successful4.0K ./pacman?inline=false4.0K ./.bash_logout4.0K ./.wget-hsts4.0K ./.bash_history0 ./.cache/motd.legal-displayed4.0K ./.cache4.0K ./deb-pacman_1.0-0.deb4.0K ./.bashrc6.2M .

1.6、配置 SSH 密鑰認(rèn)證,避免輸入密碼

如果你經(jīng)常在遠(yuǎn)程系統(tǒng)上運(yùn)行命令,你可能需要配置基于 SSH 密鑰的身份驗(yàn)證,以便每次跳過密碼輸入。更多細(xì)節(jié)可以在以下鏈接中找到。

??Linux 系統(tǒng)下如何配置 SSH 密鑰認(rèn)證??

配置了基于 SSH 密鑰的認(rèn)證后,我們可以通過 SSH 在遠(yuǎn)程機(jī)器上執(zhí)行命令,從而不需要輸入密碼:

$ ssh sk@192.168.225.22 sudo apt update

2、通過 sshpass 在遠(yuǎn)程機(jī)器上運(yùn)行命令

如果你不想配置基于 SSH 密鑰的身份驗(yàn)證,你可以使用 ??sshpass?? 實(shí)用程序。

2.1、什么是 sshpass?

??sshpass?? 是為使用鍵盤交互密碼身份驗(yàn)證模式運(yùn)行 ssh 而設(shè)計(jì)的,但它以非交互的方式。簡單來說,??sshpass?? 提供了非交互式的方式來驗(yàn)證 SSH 會話。

SSH 使用直接 TTY 訪問來確保密碼確實(shí)是由交互式鍵盤用戶發(fā)出的。??sshpass?? 在一個專用 tty 中運(yùn)行 SSH,讓它誤以為從交互用戶那里獲得了密碼。

2.2、在 Linux 中安裝 sshpass

在許多 Linux 發(fā)行版的默認(rèn)倉庫中都有 ??sshpass?? 實(shí)用程序。例如,在 Debian、Ubuntu 及其衍生版本中,你可以使用下面的命令來安裝 ??sshpass??:

$ sudo apt install sshpass

2.3、通過 SSH 和 sshpass 在遠(yuǎn)程機(jī)器上執(zhí)行命令

??sshpass?? 可以通過參數(shù)接受密碼,或者通過環(huán)境變量讀取密碼,也可以從文本文件中讀取密碼。

警告: 所有這些方法都是 高度不安全的。所有系統(tǒng)用戶都可以通過 ??ps?? 命令看到命令中的密碼。不建議在生產(chǎn)中使用這些方法。最好使用基于密鑰的身份驗(yàn)證。

讓我們看看每種方法的示例。

將密碼作為參數(shù)提供

將密碼作為參數(shù)提供,使用 ??-p?? 選項(xiàng),如下所示:

$ sshpass -p <remote-password> ssh remoteuser@ip-address <command-to-execute>

示例輸出:

$ sshpass -p ubuntu ssh ostechnix@192.168.1.30 uname -a

其中,

  • ??-p ubuntu?? - 提供遠(yuǎn)程系統(tǒng)的密碼。
  • ??ostechnix@192.168.1.30?? - 遠(yuǎn)程系統(tǒng)用戶名和地址。
  • ??uname -a?? - 要在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行的命令。

示例輸出:

Linux Ubuntu22CT 5.15.60-1-pve #1 SMP PVE 5.15.60-1 (Mon, 19 Sep 2022 17:53:17 +0200) x86_64 x86_64 x86_64 GNU/Linux
密碼作為環(huán)境變量提供

在這個方法中,我們聲明一個名為 ??SSHPASS?? 的環(huán)境變量,用遠(yuǎn)程環(huán)境的密碼作為其值。然后我們使用 ??-e?? 標(biāo)志,如下所示:

$ SSHPASS=ubuntu sshpass -e ssh ostechnix@192.168.1.30 uname -a
從文本文件中讀取密碼

使用 ??echo?? 命令在文本文件中追加密碼:

$ echo "ubuntu" > mypassword.txt

現(xiàn)在,將密碼文件傳遞給帶有 ??-f?? 標(biāo)志的 ??sshpass??,如下所示:

$ sshpass -f mypassword.txt ssh ostechnix@192.168.1.30 uname -a

通過 SSH 和 sshpass 在遠(yuǎn)程機(jī)器上執(zhí)行命令

總結(jié)

在本教程中,我們學(xué)習(xí)了一些通過安全的網(wǎng)絡(luò)連接在遠(yuǎn)程計(jì)算機(jī)上調(diào)用命令或程序的方法。在所有的方法中,??sshpass?? 方法是最不安全的,建議用戶避免在生產(chǎn)系統(tǒng)中使用它。

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2019-10-09 16:50:48

SSHLinux遠(yuǎn)程系統(tǒng)

2018-01-18 10:57:48

Linux服務(wù)器命令

2012-06-01 09:44:26

Python

2021-03-22 16:45:58

服務(wù)器命令

2022-03-14 09:26:32

LinuxUbuntu

2019-08-30 07:24:16

2017-12-11 09:34:40

Linux啟動或重啟命令與腳本

2024-01-26 07:58:09

2019-04-25 09:52:38

SSHLinux服務(wù)器

2020-09-21 05:53:28

Linux命令&

2009-12-29 14:36:29

Ubuntu cron

2011-08-22 16:23:29

2022-03-11 13:28:54

SSHLinux命令

2016-10-13 08:35:00

SSHFSSSHLinux

2018-01-22 09:12:18

Linuxbashssh

2011-03-25 09:35:07

2020-04-10 09:56:12

at命令Linux安排任務(wù)

2017-03-10 10:37:16

Linux命令腳本

2022-09-27 10:07:01

要使用 source

2011-03-25 11:21:36

NagiosLinux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日本在线视 | 久久久久国产一区二区三区四区 | 欧美成人aaa级毛片在线视频 | 91 久久| 黑人精品xxx一区一二区 | 欧美精品一区二区三区视频 | 国产精品美女一区二区 | 久久久久久av | 一级毛片视频免费观看 | 午夜欧美| 一区二区三区视频在线观看 | 久久久久久免费毛片精品 | 午夜精品一区二区三区在线观看 | 国产精品色 | 国产精品视频500部 a久久 | 在线观看成人av | 日韩成人在线免费观看 | 日本高清中文字幕 | 久久亚洲欧美日韩精品专区 | 日韩欧美高清 | 久久久久久国产精品免费免费 | 青草福利| 久久国产精品免费一区二区三区 | 伊人超碰在线 | 四虎在线观看 | sese视频在线观看 | 涩涩导航| 好姑娘高清在线观看电影 | av大片 | 日本视频一区二区 | 午夜影院在线观看 | a级片在线观看 | 国产成人免费视频网站高清观看视频 | 欧美精品一区免费 | 国产精产国品一二三产区视频 | 在线观看国产 | 亚洲综合色丁香婷婷六月图片 | 亚洲精品视频一区 | 一区二区三区视频在线 | 在线观看的av | 精品国产乱码久久久久久闺蜜 |