您好,登錄后才能下訂單哦!
本篇內(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 地址.
如果你能夠成功登陸, 那么下面的內(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)容并在本地顯示. 是不是很酷? 你可以嘗試下其他命令看看.
掛載遠(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&
轉(zhuǎn)義字符
SSH 提供了多樣的轉(zhuǎn)義字符功能. 用 SSH 連接到任意一臺遠(yuǎn)程主機(jī)然后輸入 ~? 你就可以看到支持的轉(zhuǎn)義字符和功能說明列表. 以下例子展示了 ~# 和 ~C 的效果.
配置 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ī)圖.
尋找主機(jī)密鑰
在你準(zhǔn)備添加密鑰之前不妨先用以下命令看看是否已經(jīng)添加了對應(yīng)主機(jī)的密鑰了.
代碼如下:
$ ssh-keygen -F 10.42.0.47
刪除主機(jī)密鑰
某些情況下, 比如主機(jī)地址更改或者不再使用某個密鑰, 你就可能需要刪除某個密鑰.
代碼如下:
$ ssh-keygen -R 10.42.0.47
用以上命令就可刪除. 這比手動在 ~/.ssh/known_hosts 文件中刪除要方便很多.
總結(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í)!
免責(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)容。