溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)中SSH命令的使用方式

發(fā)布時間:2021-09-15 16:33:47 來源:億速云 閱讀:181 作者:chen 欄目:系統(tǒng)運(yùn)維

本篇內(nèi)容主要講解“Linux系統(tǒng)中SSH命令的使用方式”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Linux系統(tǒng)中SSH命令的使用方式”吧!

ssh用于登錄遠(yuǎn)程主機(jī), 并且在遠(yuǎn)程主機(jī)上執(zhí)行命令,它的目的是替換rlogin和rsh,同時在不安全的網(wǎng)絡(luò)之上,兩個互不信任的主機(jī)之間, 提供加密的, 安全的通信連接.先來看一下ssh命令的一些參數(shù):

參數(shù)

-a
    禁止轉(zhuǎn)發(fā)認(rèn)證代理的連接.
   
-A
    允許轉(zhuǎn)發(fā)認(rèn)證代理的連接. 可以在配置文件中對每個主機(jī)單獨(dú)設(shè)定這個參數(shù).
    代理轉(zhuǎn)發(fā)須謹(jǐn)慎. 某些用戶能夠在遠(yuǎn)程主機(jī)上繞過文件訪問權(quán)限 (由于代理的 UNIX 域 socket), 他們可以通過轉(zhuǎn)發(fā)的連接訪問本地代理. 攻擊者不可能從代理獲得密鑰內(nèi)容, 但是他們能夠操作這些密鑰, 利用加載到代理上 的身份信息通過認(rèn)證.
   
-b bind_address
    在擁有多個接口或地址別名的機(jī)器上, 指定收發(fā)接口.
   
-c blowfish|3des|des
    選擇加密會話的密碼術(shù). 3des 是默認(rèn)算法. 3des (triple-des) 用三支不同的密鑰做加密-解密-加密三次運(yùn)算, 被認(rèn)為比較可靠. blowfish 是一種快速的分組加密術(shù)(block cipher), 非常安全, 而且速度比 3des 快的多. des 僅支持 客戶端, 目的是能夠和老式的不支持 3des 的協(xié)議第一版互操作. 由于其密碼算法上的弱點(diǎn), 強(qiáng)烈建議避免使用.
   
-c cipher_spec
    另外, 對于協(xié)議第二版, 這里可以指定一組用逗號隔開, 按優(yōu)先順序排列的密碼術(shù). 詳見 Ciphers
   
-e ch|^ch|none
    設(shè)置 pty 會話的 escape 字符 (默認(rèn)字符: `~' ) . escape 字符只在行首有效, escape 字符后面跟一個點(diǎn) (`.' ) 表示結(jié)束連接, 跟一個 control-Z 表示掛起連接(suspend), 跟 escape 字符自己 表示輸出這個字符. 把這個字符設(shè)為 ``none 則禁止 escape 功能, 使會話完全透明.

-f
    要求 在執(zhí)行命令前退至后臺. 它用于當(dāng) 準(zhǔn)備詢問口令或密語, 但是用戶希望它在后臺進(jìn)行. 該選項(xiàng)隱含了 -n 選項(xiàng). 在遠(yuǎn)端機(jī)器上啟動 X11 程序的推薦手法就是類似于 ssh -f host xterm 的命令.
   
-g
    允許遠(yuǎn)端主機(jī)連接本地轉(zhuǎn)發(fā)的端口.
   
-i identity_file
    指定一個 RSA 或 DSA 認(rèn)證所需的身份(私鑰)文件. 默認(rèn)文件是協(xié)議第一版的 $HOME/.ssh/identity 以及協(xié)議第二版的 $HOME/.ssh/id_rsa 和 $HOME/.ssh/id_dsa 文件. 也可以在配置文件中對每個主機(jī)單獨(dú)指定身份文件. 可以同時使用多個 -i 選項(xiàng) (也可以在配置文件中指定多個身份文件).
   
-I smartcard_device
    指定智能卡(smartcard)設(shè)備. 參數(shù)是設(shè)備文件, 能夠用它和智能卡通信, 智能卡里面存儲了用戶的 RSA 私鑰.
   
-k
    禁止轉(zhuǎn)發(fā) Kerberos 門票和 AFS 令牌. 可以在配置文件中對每個主機(jī)單獨(dú)設(shè)定這個參數(shù).
   
-l login_name
    指定登錄遠(yuǎn)程主機(jī)的用戶. 可以在配置文件中對每個主機(jī)單獨(dú)設(shè)定這個參數(shù).
   
-m mac_spec
    另外, 對于協(xié)議第二版, 這里可以指定一組用逗號隔開, 按優(yōu)先順序排列的 MAC(消息驗(yàn)證碼)算法 (message authentication code). 詳情以 MACs 為關(guān)鍵字查詢.
   
-n
    把 stdin 重定向到 /dev/null (實(shí)際上防止從 stdin 讀取數(shù)據(jù)). 在后臺運(yùn)行時一定會用到這個選項(xiàng). 它的常用技巧是遠(yuǎn)程運(yùn)行 X11 程序. 例如, ssh -n shadows.cs.hut.fi emacs 將會在 shadows.cs.hut.fi 上啟動 emacs, 同時自動在加密通道中轉(zhuǎn)發(fā) X11 連接. 在后臺運(yùn)行. (但是如果 要求口令或密語, 這種方式就無法工作; 參見 -f 選項(xiàng).)
   
-N
    不執(zhí)行遠(yuǎn)程命令. 用于轉(zhuǎn)發(fā)端口. (僅限協(xié)議第二版)
   
-o option
    可以在這里給出某些選項(xiàng), 格式和配置文件中的格式一樣. 它用來設(shè)置那些沒有命令行開關(guān)的選項(xiàng).
   
-p port
    指定遠(yuǎn)程主機(jī)的端口. 可以在配置文件中對每個主機(jī)單獨(dú)設(shè)定這個參數(shù).
   
-q
    安靜模式. 消除所有的警告和診斷信息.
   
-s
    請求遠(yuǎn)程系統(tǒng)激活一個子系統(tǒng). 子系統(tǒng)是 SSH2 協(xié)議的一個特性, 能夠協(xié)助 其他應(yīng)用程序(如 sftp)把SSH用做安全通路. 子系統(tǒng)通過遠(yuǎn)程命令指定.
   
-t
    強(qiáng)制分配偽終端. 可以在遠(yuǎn)程機(jī)器上執(zhí)行任何全屏幕(screen-based)程序, 所以非常有用, 例如菜單服務(wù). 并聯(lián)的 -t 選項(xiàng)強(qiáng)制分配終端, 即使 沒有本地終端.
   
-T
    禁止分配偽終端.
   
-v
    冗詳模式. 使 打印關(guān)于運(yùn)行情況的調(diào)試信息. 在調(diào)試連接, 認(rèn)證和配置問題時非常有用. 并聯(lián)的 -v 選項(xiàng)能夠增加冗詳程度. 最多為三個.
   
-x
    禁止 X11 轉(zhuǎn)發(fā).
   
-X
    允許 X11 轉(zhuǎn)發(fā). 可以在配置文件中對每個主機(jī)單獨(dú)設(shè)定這個參數(shù).
    應(yīng)該謹(jǐn)慎使用 X11 轉(zhuǎn)發(fā). 如果用戶在遠(yuǎn)程主機(jī)上能夠繞過文件訪問權(quán)限 (根據(jù)用戶的X授權(quán)數(shù)據(jù)庫), 他就可以通過轉(zhuǎn)發(fā)的連接訪問本地 X11 顯示器. 攻擊者可以據(jù)此采取行動, 如監(jiān)視鍵盤輸入等.
   
-C
    要求進(jìn)行數(shù)據(jù)壓縮 (包括 stdin, stdout, stderr 以及轉(zhuǎn)發(fā) X11 和 TCP/IP 連接 的數(shù)據(jù)). 壓縮算法和 gzip(1) 的一樣, 協(xié)議第一版中, 壓縮級別 ``level 用 CompressionLevel 選項(xiàng)控制. 壓縮技術(shù)在 modem 線路或其他慢速連接上很有用, 但是在高速網(wǎng)絡(luò)上反而 可能降低速度. 可以在配置文件中對每個主機(jī)單獨(dú)設(shè)定這個參數(shù). 另見 Compression 選項(xiàng).
   
-F configfile
    指定一個用戶級配置文件. 如果在命令行上指定了配置文件, 系統(tǒng)級配置文件 (/etc/ssh/ssh_config ) 將被忽略. 默認(rèn)的用戶級配置文件是 $HOME/.ssh/config
   
-L port:host:hostport
    將本地機(jī)(客戶機(jī))的某個端口轉(zhuǎn)發(fā)到遠(yuǎn)端指定機(jī)器的指定端口. 工作原理是這樣的, 本地機(jī)器上分配了一個 socket 偵聽 port 端口, 一旦這個端口上有了連接, 該連接就經(jīng)過安全通道轉(zhuǎn)發(fā)出去, 同時遠(yuǎn)程主機(jī)和 host 的 hostport 端口建立連接. 可以在配置文件中指定端口的轉(zhuǎn)發(fā). 只有 root 才能轉(zhuǎn)發(fā)特權(quán)端口. IPv6 地址用另一種格式說明: port/host/hostport
   
-R port:host:hostport
    將遠(yuǎn)程主機(jī)(服務(wù)器)的某個端口轉(zhuǎn)發(fā)到本地端指定機(jī)器的指定端口. 工作原理是這樣的, 遠(yuǎn)程主機(jī)上分配了一個 socket 偵聽 port 端口, 一旦這個端口上有了連接, 該連接就經(jīng)過安全通道轉(zhuǎn)向出去, 同時本地主機(jī)和 host 的 hostport 端口建立連接. 可以在配置文件中指定端口的轉(zhuǎn)發(fā). 只有用 root 登錄遠(yuǎn)程主機(jī) 才能轉(zhuǎn)發(fā)特權(quán)端口. IPv6 地址用另一種格式說明: port/host/hostport
   
-D port
    指定一個本地機(jī)器 ``動態(tài)的 應(yīng)用程序端口轉(zhuǎn)發(fā). 工作原理是這樣的, 本地機(jī)器上分配了一個 socket 偵聽 port 端口, 一旦這個端口上有了連接, 該連接就經(jīng)過安全通道轉(zhuǎn)發(fā)出去, 根據(jù)應(yīng)用程序的協(xié)議可以判斷出遠(yuǎn)程主機(jī)將和哪里連接. 目前支持 SOCKS4 協(xié)議, 將充當(dāng) SOCKS4 服務(wù)器. 只有 root 才能轉(zhuǎn)發(fā)特權(quán)端口. 可以在配置文件中指定動態(tài)端口的轉(zhuǎn)發(fā).
   
-1
    強(qiáng)制 只使用協(xié)議第一版.
   
-2
    強(qiáng)制 只使用協(xié)議第二版.
   
-4
    強(qiáng)制 只使用 IPv4 地址.
   
-6
    強(qiáng)制 只使用 IPv6 地址.

基本用法

最簡單的 SSH 命令只需要指定用戶名和主機(jī)名參數(shù)即可. 主機(jī)名可以是 IP 地址或者域名. 命令格式如下:

代碼如下:


$ ssh user@hostname


比如要在我的局域網(wǎng)內(nèi)登錄一個樹莓派系統(tǒng), 只需要簡單的在命令行輸入如下命令:

代碼如下:


$ ssh pi@10.42.0.47


命令中的 pi 和 10.42.0.47 分別是我的樹莓派系統(tǒng)的用戶名和局域網(wǎng) IP 地址. 實(shí)際使用時主機(jī)名需要改成你的目標(biāo)主機(jī)(局域網(wǎng)內(nèi)或者遠(yuǎn)程)的 IP 地址.
Linux系統(tǒng)中SSH命令的使用方式

如果你能夠成功登陸, 那么下面的內(nèi)容對你來說就輕而易舉了.

使用其他端口

SSH 默認(rèn)連接到目標(biāo)主機(jī)的 22 端口上,但是由于各種原因你可能需要連接到其他端口.

代碼如下:


$ ssh -p 10022 user@hostname


如上命令就是通過添加參數(shù) -p 指定端口號為 10022.

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

有時在遠(yuǎn)程主機(jī)執(zhí)行一條命令并顯示到本地, 然后繼續(xù)本地工作是很方便的. SSH 就能滿足這個需求:

代碼如下:


$ ssh pi@10.42.0.47 ls -l


比如上面這個命令就會枚舉遠(yuǎn)程主機(jī)的主目錄內(nèi)容并在本地顯示. 是不是很酷? 你可以嘗試下其他命令看看.
Linux系統(tǒng)中SSH命令的使用方式

掛載遠(yuǎn)程文件系統(tǒng)

另外一個很贊的基于 SSH 的工具叫 sshfs. sshfs 可以讓你在本地直接掛載遠(yuǎn)程主機(jī)的文件系統(tǒng).

代碼如下:


$ sshfs -o idmap=user user@hostname:/home/user ~/Remote


比如下面這條命令:

代碼如下:


$ sshfs -o idmap=user pi@10.42.0.47:/home/pi ~/Pi


該命令就將遠(yuǎn)程主機(jī) pi 用戶的主目錄掛載到本地主目錄下的 Pi 文件夾.

要詳細(xì)了解可以參考 sshfs 教程.

X11 圖形界面

假如現(xiàn)在你想要在遠(yuǎn)程主機(jī)運(yùn)行一個圖形界面的程序, SSH 已經(jīng)幫你想到了! 用前面提到的 SSH 基本命令加上參數(shù) -X 連接到遠(yuǎn)程主機(jī)即可開啟 X11 轉(zhuǎn)發(fā)功能. 登錄后你可能覺得沒什么差別, 但是當(dāng)你運(yùn)行一個圖形界面程序后就會發(fā)現(xiàn)其中的不同的.

代碼如下:


$ ssh -X pi@10.42.0.47
$ pistore


如果你想在運(yùn)行圖形界面程序的同時做些別的事情, 只需要簡單地在命令末尾加一個 & 符號.

代碼如下:


$ pistore&


Linux系統(tǒng)中SSH命令的使用方式

轉(zhuǎn)義字符

SSH 提供了多樣的轉(zhuǎn)義字符功能. 用 SSH 連接到任意一臺遠(yuǎn)程主機(jī)然后輸入 ~? 你就可以看到支持的轉(zhuǎn)義字符和功能說明列表. 以下例子展示了 ~# 和 ~C 的效果.
Linux系統(tǒng)中SSH命令的使用方式

配置 SSH

如果你需要改變 SSH 的配置, 請用你喜好的文本編輯器打開 /etc/ssh/sshd_config 進(jìn)行編輯. 比如你想改變登陸的標(biāo)語, 在配置文件中找到下面這行:

代碼如下:


#Banner none


刪除 # 字符(取消該行的注釋), 將 none 替換為包含你期望顯示內(nèi)容的文件地址. 修改后該行應(yīng)該類似這樣:

代碼如下:


Banner /etc/issue


在配置文件 /etc/ssh/sshd_config 中你還可以找到端口號, 空閑超時時間等配置項(xiàng). 配置項(xiàng)大都比較容易理解, 但是保險(xiǎn)起見在你修改一些不是很確定的配置項(xiàng)時最好參考下 SSH 的幫助文檔.

構(gòu)建 ssh 密鑰對

運(yùn)行以下命令創(chuàng)建密鑰對:

代碼如下:


$ ssh-keygen -t dsa


此命令會要求你輸入密碼(可以留空), 然后就會生成密鑰并會顯示一張?jiān)撁荑€對應(yīng)的隨機(jī)圖.
Linux系統(tǒng)中SSH命令的使用方式

尋找主機(jī)密鑰

在你準(zhǔn)備添加密鑰之前不妨先用以下命令看看是否已經(jīng)添加了對應(yīng)主機(jī)的密鑰了.

代碼如下:


$ ssh-keygen -F 10.42.0.47


Linux系統(tǒng)中SSH命令的使用方式

刪除主機(jī)密鑰

某些情況下, 比如主機(jī)地址更改或者不再使用某個密鑰, 你就可能需要刪除某個密鑰.

代碼如下:


$ ssh-keygen -R 10.42.0.47


用以上命令就可刪除. 這比手動在 ~/.ssh/known_hosts 文件中刪除要方便很多.
Linux系統(tǒng)中SSH命令的使用方式

總結(jié)

通過以上的內(nèi)容你應(yīng)該可以輕松使用 SSH 了. SSH 還有很多功能值得你去發(fā)掘, 這就要看你的想象力了。

到此,相信大家對“Linux系統(tǒng)中SSH命令的使用方式”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI