ssh 命令詳解

概要

SSH 是傳輸層和應(yīng)用層上的安全協(xié)議,它只能通過加密連接雙方會話的方式來保證連接的安全性虐沥。
當(dāng)使用 ssh 客戶端工具連接成功后汰扭,將建立客戶端和服務(wù)端之間的會話德崭,該會話是被加密的,之后客戶端和服務(wù)端的通信都將通過會話傳輸弟胀。

SSH 服務(wù)的守護(hù)進(jìn)程為 sshd楷力,默認(rèn)監(jiān)聽在 22 端口上。

所有 ssh 客戶端工具孵户,包括 ssh 命令弥雹,scpsftp延届,ssh-copy-id 等命令都是借助于 ssh 連接來完成任務(wù)的剪勿。
也就是說它們都連接服務(wù)端的 22 端口,只不過連接上之后將待執(zhí)行的相關(guān)命令轉(zhuǎn)換傳送到遠(yuǎn)程主機上方庭,由遠(yuǎn)程主機執(zhí)行厕吉。

登錄到目標(biāo)機器

ssh [-p port] destination

-p port 選項指定遠(yuǎn)程 sshd 監(jiān)聽的端口。

destination 的格式有以下兩種:

  • [user@]hostname
  • ssh://[user@]hostname[:port] (URI 形式(form)的)

不指定 [user@] 的話械念,默認(rèn)使用本機的當(dāng)前用戶進(jìn)行登錄操作头朱。

-t 和 -T 選項

通過 man ssh 我們可以得知以下信息:

  • -T:禁止分配偽終端。(Disable pseudo-terminal allocation
  • -t:強制分配偽終端龄减。(Force pseudo-terminal allocation

小朋友你是否有很多問號项钮?

  • (1)什么是偽終端(pseudo-terminal)?
  • (2)偽終端在 ssh 客戶端還是服務(wù)端創(chuàng)建希停?
  • (2)ssh 是否分配偽終端的區(qū)別是什么烁巫?

解答:

ssh 命令存在兩種基本模式,一是登錄到遠(yuǎn)程機器违崇,二是在遠(yuǎn)程機器上執(zhí)行代碼阿弃。

登錄模式

meikai@ubuntu:~$ ssh localhost
Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.8.0-50-generic x86_64)
Last login: Tue Apr 27 23:51:26 2021 from 127.0.0.1

meikai@ubuntu:~$ tty
/dev/pts/5

從上面可以看出诊霹,【登錄模式】默認(rèn)會分配偽終端 tty

meikai@ubuntu:~$ ssh -T localhost
Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.8.0-50-generic x86_64)

tty
not a tty

指定 -T 選項后渣淳,會禁止 tty 的分配脾还。

執(zhí)行不需要 tty 的命令顯示正常:

uname -a
Linux ubuntu 5.8.0-50-generic #56~20.04.1-Ubuntu SMP Mon Apr 12 21:46:35 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

此時執(zhí)行 vim 命令(需要一個 tty 偽終端)會出現(xiàn)如下所示的錯誤:

vim aa
Vim: Warning: Output is not to a terminal
Vim: Warning: Input is not from a terminal

命令模式

meikai@ubuntu:~$ ssh localhost "tty"
not a tty

從上面可以看出,【命令模式】默認(rèn)不會分配偽終端 tty入愧。

我們通過【命令模式】執(zhí)行 vim 命令會出現(xiàn)上文同樣的錯誤鄙漏。

meikai@ubuntu:~$ ssh localhost "vim aa"
Vim: Warning: Output is not to a terminal
Vim: Warning: Input is not from a terminal

指定 -t 選項后,會對當(dāng)前的 ssh session 分配一個 tty砂客。

meikai@ubuntu:~$ ssh localhost -t "tty"
/dev/pts/7
Connection to localhost closed.

此時可以正常執(zhí)行 vim 命令泥张。

meikai@ubuntu:~$ ssh localhost -t "vim aa"
Connection to localhost closed.

保存一些文本后,我們可以通過 cat aa 命令進(jìn)行查詢鞠值,確認(rèn)進(jìn)行了正常的保存操作媚创。

meikai@ubuntu:~$ cat aa
aa
aaa

bbb

至此,我們可以得出以下結(jié)論:

  • 【登錄模式】
    • 默認(rèn)分配偽終端彤恶,同指定 -t 選項效果相同钞钙。
    • 可以通過 -T 選項禁止分配偽終端。
  • 【命令模式】
    • 默認(rèn)不分配偽終端声离,同指定 -T 選項效果相同芒炼。
    • 可以通過 -t 選項強制分配偽終端。

通過 man ssh术徊,我們還可以得知:如果未分配偽終端本刽,則該會話是透明的,可用于可靠地傳輸二進(jìn)制數(shù)據(jù)赠涮。(If no pseudo-terminal has been allocated, the session is transparent and can be used to reliably transfer binary data.

問:如何理解【會話是透明的】呢子寓?
答:網(wǎng)絡(luò)數(shù)據(jù)可以不通過偽終端進(jìn)行中轉(zhuǎn)操作直接寫入到對應(yīng)的程序中。參考 Linux 的偽終端的基本原理 及其在遠(yuǎn)程登錄(SSH笋除,telnet等)中的應(yīng)用 一文斜友。

參考

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末国拇,一起剝皮案震驚了整個濱河市洛史,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌贝奇,老刑警劉巖虹菲,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異掉瞳,居然都是意外死亡毕源,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門陕习,熙熙樓的掌柜王于貴愁眉苦臉地迎上來霎褐,“玉大人,你說我怎么就攤上這事该镣《沉В” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵损合,是天一觀的道長省艳。 經(jīng)常有香客問我,道長嫁审,這世上最難降的妖魔是什么跋炕? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮律适,結(jié)果婚禮上辐烂,老公的妹妹穿的比我還像新娘。我一直安慰自己捂贿,他們只是感情好纠修,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著厂僧,像睡著了一般扣草。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上颜屠,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天辰妙,我揣著相機與錄音,去河邊找鬼汽纤。 笑死上岗,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蕴坪。 我是一名探鬼主播肴掷,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼背传!你這毒婦竟也來了呆瞻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤径玖,失蹤者是張志新(化名)和其女友劉穎痴脾,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梳星,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡赞赖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年滚朵,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片前域。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡辕近,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出匿垄,到底是詐尸還是另有隱情移宅,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布椿疗,位于F島的核電站漏峰,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏届榄。R本人自食惡果不足惜浅乔,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望痒蓬。 院中可真熱鬧童擎,春花似錦、人聲如沸攻晒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鲁捏。三九已至芯砸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間给梅,已是汗流浹背假丧。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留动羽,地道東北人包帚。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像运吓,于是被迫代替她去往敵國和親渴邦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容