国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

Linux ssh 命令

2025-02-13 17:13:11 2440

SSH(Secure Shell)是一種加密網(wǎng)絡(luò)協(xié)議,用于在客戶端和服務(wù)器之間建立加密連接。SSH客戶端創(chuàng)建與遠(yuǎn)程SSH服務(wù)器之間的安全連接。加密連接可以用來(lái)在服務(wù)器上執(zhí)行命令、X11隧道、端口轉(zhuǎn)發(fā)等。


有許多SSH客戶端可供選擇,包括免費(fèi)的和商業(yè)的,其中OpenSSH是最廣泛使用的客戶端。它可在所有主要平臺(tái)上使用,包括Linux、OpenBSD、Windows和macOS。


本文解釋了如何使用OpenSSH命令行客戶端(ssh)登錄遠(yuǎn)程機(jī)器并運(yùn)行命令或執(zhí)行其他操作。

安裝 OpenSSH 客戶端

OpenSSH 客戶端程序稱為 ssh,可以從終端調(diào)用。OpenSSH 客戶端包還提供了其他 SSH 實(shí)用程序,如 scpsftp,這些程序與 ssh 命令一起安裝。


在 Linux 上安裝 OpenSSH 客戶端

大多數(shù) Linux 發(fā)行版默認(rèn)預(yù)裝了 OpenSSH 客戶端。如果您的系統(tǒng)沒(méi)有安裝 ssh 客戶端,可以使用您的發(fā)行版包管理器進(jìn)行安裝。

在 Ubuntu 和 Debian 上安裝 OpenSSH

sudo apt update
sudo apt install openssh-client

在 CentOS 和 Fedora 上安裝 OpenSSH

sudo dnf install openssh-clients

在 Windows 10 上安裝 OpenSSH 客戶端

大多數(shù) Windows 用戶使用 Putty 通過(guò) SSH 連接到遠(yuǎn)程機(jī)器。然而,最新版本的 Windows 10 包括了 OpenSSH 客戶端和服務(wù)器。這兩個(gè)包都可以通過(guò) GUI 或 PowerShell 安裝。

要找到 OpenSSH 包的確切名稱,請(qǐng)鍵入以下命令:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

該命令應(yīng)該返回如下內(nèi)容:

Name  : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

一旦您知道了包的名稱,就通過(guò)運(yùn)行以下命令來(lái)安裝它:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

成功時(shí)輸出將如下所示:

Path          :
Online        : True
RestartNeeded : False

在 macOS 上安裝 OpenSSH 客戶端

macOS 默認(rèn)安裝了 OpenSSH 客戶端。

如何使用 ssh 命令

要能夠通過(guò) SSH 登錄到遠(yuǎn)程機(jī)器,必須滿足以下要求:

  • ? 遠(yuǎn)程機(jī)器上必須運(yùn)行 SSH 服務(wù)器。

  • ? 遠(yuǎn)程機(jī)器的防火墻必須打開(kāi) SSH 端口。

  • ? 您必須知道遠(yuǎn)程賬戶的用戶名和密碼。該賬戶需要有適當(dāng)?shù)倪h(yuǎn)程登錄權(quán)限。

ssh 命令的基本語(yǔ)法如下:

ssh [OPTIONS] [USER@]:HOST

要使用 ssh 命令,請(qǐng)打開(kāi)您的終端或 PowerShell 并鍵入 ssh,然后是遠(yuǎn)程主機(jī)名:

ssh ssh.linuxize.com

當(dāng)您首次通過(guò) SSH 連接到遠(yuǎn)程機(jī)器時(shí),您將看到如下消息。

The authenticity of host 'ssh.linuxize.com (192.168.121.111)' can't be established.
ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY.
Are you sure you want to continue connecting (yes/no)?

每個(gè)主機(jī)都有一個(gè)獨(dú)特的指紋,存儲(chǔ)在 ~/.ssh/known_hosts 文件中。

鍵入 yes 以存儲(chǔ)遠(yuǎn)程指紋,然后系統(tǒng)會(huì)提示您輸入密碼。

Warning: Permanently added 'ssh.linuxize.com' (ECDSA) to the list of known hosts.
dev@ssh.linuxize.com's password:

一旦您輸入密碼,您將登錄到遠(yuǎn)程機(jī)器。

如果未給出用戶名,ssh 命令將使用當(dāng)前系統(tǒng)的登錄名。

要以不同的用戶登錄,請(qǐng)按照以下格式指定用戶名和主機(jī):

ssh username@hostname

用戶名也可以使用 -l 選項(xiàng)指定:

ssh -l username hostname

默認(rèn)情況下,如果沒(méi)有給出端口,SSH 客戶端將嘗試在遠(yuǎn)程服務(wù)器的 22 端口上連接。在某些服務(wù)器上,管理員會(huì)更改默認(rèn) SSH 端口,以通過(guò)減少自動(dòng)化攻擊的風(fēng)險(xiǎn)來(lái)增加服務(wù)器的安全性。

要在非默認(rèn)端口上連接,請(qǐng)使用 -p 選項(xiàng)指定端口:

ssh -p 5522 username@hostname

如果您遇到認(rèn)證或連接問(wèn)題,請(qǐng)使用 -v 選項(xiàng)告訴 ssh 打印調(diào)試消息:

ssh -v username@hostname

要增加詳細(xì)程度,可以使用 -vv-vvv

ssh 命令接受許多選項(xiàng)。

要獲取所有選項(xiàng)的完整列表,請(qǐng)?jiān)诮K端中鍵入 man ssh 來(lái)閱讀 ssh 手冊(cè)頁(yè)。

SSH 配置文件

如果您每天通過(guò) SSH 連接到多個(gè)遠(yuǎn)程系統(tǒng),您會(huì)發(fā)現(xiàn)記住所有遠(yuǎn)程 IP 地址、不同的用戶名、非標(biāo)準(zhǔn)端口和各種命令行選項(xiàng)是很困難的。

OpenSSH 客戶端讀取在每個(gè)用戶配置文件(~/.ssh/config)中設(shè)置的選項(xiàng)。在此文件中,您可以為每個(gè)連接的遠(yuǎn)程機(jī)器存儲(chǔ)不同的 SSH 選項(xiàng)。

下面是一個(gè) SSH 配置樣本:

Host dev
   HostName dev.linuxize.com
   User mike
   Port 4422

當(dāng)您通過(guò)鍵入 ssh dev 調(diào)用 ssh 客戶端時(shí),命令將讀取 ~/.ssh/config 文件,并使用為 dev 主機(jī)指定的連接詳情。在此示例中,ssh dev 等同于以下命令:

ssh -p 4422 mike@dev.linuxize.com

更多信息,請(qǐng)查看有關(guān) SSH 配置文件的文章。

公鑰認(rèn)證

SSH 協(xié)議支持各種認(rèn)證機(jī)制。

基于公鑰的認(rèn)證機(jī)制允許您在不必輸入密碼的情況下登錄到遠(yuǎn)程服務(wù)器。

這種方法通過(guò)生成一對(duì)用于認(rèn)證的加密密鑰來(lái)工作。私鑰存儲(chǔ)在客戶端設(shè)備上,公鑰傳輸?shù)侥胍卿浀拿總€(gè)遠(yuǎn)程服務(wù)器。遠(yuǎn)程服務(wù)器必須配置為接受密鑰認(rèn)證。

如果您的本地機(jī)器上還沒(méi)有 SSH 密鑰對(duì),可以通過(guò)鍵入以下命令來(lái)生成一個(gè):

ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"

系統(tǒng)將要求您輸入一個(gè)安全的密碼短語(yǔ)。是否使用密碼短語(yǔ),取決于您。

一旦您有了密鑰對(duì),將公鑰復(fù)制到遠(yuǎn)程服務(wù)器:

ssh-copy-id username@hostname

輸入遠(yuǎn)程用戶密碼,公鑰將被追加到遠(yuǎn)程用戶的 authorized_keys 文件中。

一旦密鑰上傳,您就可以在不被提示輸入密碼的情況下登錄到遠(yuǎn)程服務(wù)器。

通過(guò)設(shè)置基于密鑰的認(rèn)證,您可以簡(jiǎn)化登錄過(guò)程并提高服務(wù)器的整體安全性。

端口轉(zhuǎn)發(fā)

SSH 隧道或 SSH 端口轉(zhuǎn)發(fā)是創(chuàng)建一個(gè)加密的 SSH 連接的方法,通過(guò)該連接可以將服務(wù)端口中繼。

SSH 轉(zhuǎn)發(fā)對(duì)于傳輸使用未加密協(xié)議的服務(wù)(如 VNC 或 FTP)的數(shù)據(jù)、訪問(wèn)地理限制內(nèi)容或繞過(guò)中間防火墻非常有用?;旧?,您可以轉(zhuǎn)發(fā)任何 TCP 端口,并通過(guò)安全的 SSH 連接隧道流量。

SSH 端口轉(zhuǎn)發(fā)有三種類型:

本地端口轉(zhuǎn)發(fā)

本地端口轉(zhuǎn)發(fā)允許您從客戶端主機(jī)轉(zhuǎn)發(fā)連接到 SSH 服務(wù)器主機(jī),然后到目標(biāo)主機(jī)端口。

要?jiǎng)?chuàng)建本地端口轉(zhuǎn)發(fā),請(qǐng)向 ssh 客戶端傳遞 -L 選項(xiàng):

ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION_HOST:DESTINATION_PORT -N -f username@hostname

-f 選項(xiàng)告訴 ssh 命令在后臺(tái)運(yùn)行,-N 不執(zhí)行遠(yuǎn)程命令。

遠(yuǎn)程端口轉(zhuǎn)發(fā)

遠(yuǎn)程端口轉(zhuǎn)發(fā)與本地端口轉(zhuǎn)發(fā)相反。它從服務(wù)器主機(jī)轉(zhuǎn)發(fā)端口到客戶端主機(jī),然后到目標(biāo)主機(jī)端口。

-R 選項(xiàng)告訴 ssh 創(chuàng)建遠(yuǎn)程端口轉(zhuǎn)發(fā):

ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT -N -f username@hostname

動(dòng)態(tài)端口轉(zhuǎn)發(fā)

動(dòng)態(tài)端口轉(zhuǎn)發(fā)創(chuàng)建一個(gè) SOCKS 代理服務(wù)器,允許跨多個(gè)端口通信。

要?jiǎng)?chuàng)建動(dòng)態(tài)端口轉(zhuǎn)發(fā)(SOCKS),請(qǐng)向 ssh 客戶端傳遞 -D 選項(xiàng):

ssh -D [LOCAL_IP:]LOCAL_PORT  -N -f username@hostname

有關(guān)更詳細(xì)的信息和逐步指導(dǎo),請(qǐng)查看有關(guān)如何設(shè)置 SSH 隧道(端口轉(zhuǎn)發(fā))的文章。

結(jié)論

要通過(guò) SSH 連接到遠(yuǎn)程服務(wù)器,請(qǐng)使用 ssh 命令,后跟遠(yuǎn)程用戶名和主機(jī)名(ssh username@hostname)。

知道如何使用 ssh 命令對(duì)于管理遠(yuǎn)程服務(wù)器至關(guān)重要。


SSH 作為網(wǎng)絡(luò)安全連接的關(guān)鍵技術(shù),在遠(yuǎn)程管理、數(shù)據(jù)傳輸?shù)葓?chǎng)景發(fā)揮著不可替代的作用。掌握 OpenSSH 客戶端安裝及 ssh 命令各類操作,無(wú)論是運(yùn)維人員管理服務(wù)器,還是開(kāi)發(fā)者遠(yuǎn)程協(xié)作,都能更加高效、安全地完成任務(wù),為構(gòu)建穩(wěn)定、安全的網(wǎng)絡(luò)環(huán)境奠定堅(jiān)實(shí)基礎(chǔ) 。

想了解更多相關(guān)技術(shù)小分享可以上藍(lán)隊(duì)云官網(wǎng)查閱,更多技術(shù)問(wèn)題,也可以直接咨詢。同時(shí),藍(lán)隊(duì)云整理了運(yùn)維必備的工具包免費(fèi)分享給大家使用,需要的朋友可以直接咨詢。



提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題: