一文帶你輕松了解SSH命令

OpenSSH是SSH連接工具的免費版本离熏。telnet夯接,rlogin和ftp用戶可能還沒意識到他們在互聯(lián)網(wǎng)上傳輸?shù)拿艽a是未加密的煤篙,但SSH是加密的嘴瓤,OpenSSH加密所有通信(包括密碼),有效消除了竊聽轴猎,連接劫持和其它攻擊嵌莉。此外,OpenSSH提供了安全隧道功能和多種身份驗證方法捻脖,支持SSH協(xié)議的所有版本锐峭。

SSH是一個非常偉大的工具,如果你要在互聯(lián)網(wǎng)上遠程連接到服務(wù)器可婶,那么SSH無疑是最佳的候選沿癞。

ssh-2.jpg

一.SSH基礎(chǔ)命令

1.SSH遠程登錄

假定你要以用戶名root,登錄遠程主機192.168.1.104

1.1.口令登錄

需要輸入密碼

# 常用用法
ssh root@192.168.1.104
# 本地用戶名與遠程用戶名一致扰肌,登錄時可以省略用戶名
ssh 192.168.1.104
# SSH的默認(rèn)端口是22,使用p參數(shù)抛寝,可以修改這個端口
ssh -p 2222 root@192.168.1.104

1.2.公鑰登錄

image
# 生成秘鑰和公鑰
ssh-keygen
# 將公鑰傳送到遠程主機host上
# 方法一
ssh-copy-id root@192.168.1.104
# 方法二
ssh root@192.168.1.104 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys' << ~/.ssh/id_rsa.pub

2.通過中間主機建立SSH連

# 直接連接到只能通過 hostA 連接的 hostB
# hostB 表示從本地網(wǎng)絡(luò)無法直接訪問的主機,但可以從 hostA 所在網(wǎng)絡(luò)訪問
# 這個命令通過到 hostA 的“隱藏”連接曙旭,創(chuàng)建起到 hostB 的連接
ssh -t hostA ssh hostB

3.通過SSH連接屏幕

# 直接連接到遠程屏幕會話(節(jié)省了無用的父bash進程)
ssh -t root@192.168.1.104 screen –r
# 建立一個可以重新連接的遠程GNU screen
ssh -t root@192.168.1.104 screen –xRR

二.SSH遠程操作

SSH不僅可以用于遠程主機登錄盗舰,還可以直接在遠程主機上執(zhí)行操作

1.SSH數(shù)據(jù)傳輸

1.1.將~/.ssh/目錄下面的所有文件,復(fù)制到遠程主機的~/.ssh/目錄

cd && tar czv .ssh | ssh root@192.168.1.104 'tar xz'

1.2.將遠程主機~/.ssh/目錄下面的所有文件桂躏,復(fù)制到用戶的當(dāng)前目錄

ssh root@192.168.1.104 'tar cz .ssh' | tar zxv

2.通過SSH運行復(fù)雜的遠程shell命令

ssh 192.168.1.104 -l root "cat ~/.ssh/authorized_keys"

3.比較遠程和本地文件

# 比較本地文件和遠程文件是否有差異
ssh root@192.168.1.104 "cat ~/.ssh/authorized_keys" | diff ~/.ssh/authorized_keys –

4.通過SSH將MySQL數(shù)據(jù)庫復(fù)制到新服務(wù)器

# 通過壓縮的SSH隧道Dump一個MySQL數(shù)據(jù)庫钻趋,將其作為輸入傳遞給mysql命令
mysqldump –add-drop-table –extended-insert –force –log-error=error.log -uUSER -pPASS OLD_DB_NAME \
| ssh -C user@newhost "mysql -uUSER -pPASS NEW_DB_NAME"

5.實時SSH網(wǎng)絡(luò)吞吐量測試

# 通過SSH連接到主機,顯示實時的傳輸速度剂习,將所有傳輸數(shù)據(jù)指向/dev/null蛮位,需要先安裝pv
yes | pv | ssh root@192.168.1.104 "cat > /dev/null"

6.scp 跨機遠程拷貝

scp是secure copy的簡寫较沪,用于在Linux下進行遠程拷貝文件的命令,和它類似的命令有cp失仁,不過cp只是在本機進行拷貝不能跨服務(wù)器尸曼,而且scp傳輸是加密的√呀梗可能會稍微影響一下速度控轿。兩臺主機之間復(fù)制文件必需得同時有兩臺主機的復(fù)制執(zhí)行帳號和操作權(quán)限。

6.1.scp命令參數(shù)

  • -1 強制scp命令使用協(xié)議ssh1
  • -2 強制scp命令使用協(xié)議ssh2
  • -4 強制scp命令只使用IPv4尋址
  • -6 強制scp命令只使用IPv6尋址
  • -B 使用批處理模式(傳輸過程中不詢問傳輸口令或短語)
  • -C 允許壓縮拂封。(將-C標(biāo)志傳遞給ssh茬射,從而打開壓縮功能)
  • -p 留原文件的修改時間,訪問時間和訪問權(quán)限冒签。
  • -q 不顯示傳輸進度條在抛。
  • -r 遞歸復(fù)制整個目錄。
  • -v 詳細方式顯示輸出萧恕。scp和ssh(1)會顯示出整個過程的調(diào)試信息刚梭。這些信息用于調(diào)試連接,驗證和配置問題廊鸥。
  • -c cipher 以cipher將數(shù)據(jù)傳輸進行加密望浩,這個選項將直接傳遞給ssh。
  • -F ssh_config 指定一個替代的ssh配置文件惰说,此參數(shù)直接傳遞給ssh。
  • -i identity_file 從指定文件中讀取傳輸時使用的密鑰文件缘回,此參數(shù)直接傳遞給ssh吆视。
  • -l limit 限定用戶所能使用的帶寬,以Kbit/s為單位酥宴。
  • -o ssh_option 如果習(xí)慣于使用ssh_config(5)中的參數(shù)傳遞方式啦吧,
  • -P port 注意是大寫的P, port是指定數(shù)據(jù)傳輸用到的端口號
  • -S program 指定加密傳輸時所使用的程序。此程序必須能夠理解ssh(1)的選項拙寡。

6.2.scp一般有六種使用方法

# 本地復(fù)制遠程文件:(把遠程的文件復(fù)制到本地)
scp root@192.168.1.104:/test.tar.gz ./test.tar.gz
# 遠程復(fù)制本地文件:(把本地的文件復(fù)制到遠程主機上)
scp ./test.tar.gz root@192.168.1.104:/test.tar.gz
# 本地復(fù)制遠程目錄:(把遠程的目錄復(fù)制到本地)
scp -r root@192.168.1.104:/val/test/ /val/test/
# 遠程復(fù)制本地目錄:(把本地的目錄復(fù)制到遠程主機上)
scp -r ./ root@192.168.1.104:/test/datasets
# 本地復(fù)制遠程文件到指定目錄:(把遠程的文件復(fù)制到本地)
scp root@192.168.1.104:/val/test/test.tar.gz /val/test/
# 遠程復(fù)制本地文件到指定目錄:(把本地的文件復(fù)制到遠程主機上)
scp /test.tar.gz root@192.168.1.104:/

三.SSH端口操作

1.綁定本地端口

既然SSH可以傳送數(shù)據(jù)授滓,那么我們可以讓那些不加密的網(wǎng)絡(luò)連接,全部改走SSH連接肆糕,從而提高安全性般堆。
假定我們要讓8080端口的數(shù)據(jù),都通過SSH傳向遠程主機诚啃,命令就這樣寫:

ssh -D 8080 root@192.168.1.104

SSH會建立一個socket淮摔,去監(jiān)聽本地的8080端口。
一旦有數(shù)據(jù)傳向那個端口始赎,就自動把它轉(zhuǎn)移到SSH連接上面和橙,發(fā)往遠程主機仔燕。可以想象魔招,如果8080端口原來是一個不加密端口晰搀,現(xiàn)在將變成一個加密端口。

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

假定host1是本地主機办斑,host2是遠程主機厕隧。由于種種原因,這兩臺主機之間無法連通俄周。
但是吁讨,另外還有一臺host3,可以同時連通前面兩臺主機峦朗。因此建丧,很自然的想法就是,通過host3波势,將host1連上host2翎朱。

我們在host1執(zhí)行下面的命令:

# ssh -L 本地端口:目標(biāo)主機:目標(biāo)主機端口
# 連接host1的2121端口,就等于連上了host2的21端口
ssh -L 2121:host2:21 host3
ftp localhost:2121

# 連接host1的9001端口尺铣,就等于連上了host2的22端口
ssh -L 9001:host2:22 host3
ssh -p 9001 localhost

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

既然"本地端口轉(zhuǎn)發(fā)"是指綁定本地端口的轉(zhuǎn)發(fā)拴曲,那么"遠程端口轉(zhuǎn)發(fā)"(remote forwarding)當(dāng)然是指綁定遠程端口的轉(zhuǎn)發(fā)。
還是接著看上面那個例子凛忿,host1與host2之間無法連通澈灼,必須借助host3轉(zhuǎn)發(fā)。但是店溢,特殊情況出現(xiàn)了叁熔,host3是一臺內(nèi)網(wǎng)機器,它可以連接外網(wǎng)的host1床牧,但是反過來就不行荣回,外網(wǎng)的host1連不上內(nèi)網(wǎng)的host3。這時戈咳,"本地端口轉(zhuǎn)發(fā)"就不能用了心软,怎么辦?

解決辦法是著蛙,既然host3可以連host1删铃,那么就從host3上建立與host1的SSH連接,然后在host1上使用這條連接就可以了册踩。

我們在host3執(zhí)行下面的命令:

# ssh -R 遠程主機端口:目標(biāo)主機:目標(biāo)主機端口
ssh -R 2121:host2:21 host1
ftp localhost:2121

讓host1監(jiān)聽它自己的2121端口泳姐,然后將所有數(shù)據(jù)經(jīng)由host3,轉(zhuǎn)發(fā)到host2的21端口暂吉。由于對于host3來說胖秒,host1是遠程主機缎患,所以這種情況就被稱為"遠程端口綁定"。

四.SSH的其他參數(shù)

1.N參數(shù),T參數(shù)

表示只連接遠程主機阎肝,不打開遠程shell挤渔;T參數(shù),表示不為這個連接分配TTY风题。
這個兩個參數(shù)可以放在一起用判导,代表這個SSH連接只用來傳數(shù)據(jù),不執(zhí)行遠程操作沛硅。

ssh -NT -D 8080 host

2.f參數(shù)眼刃,表示SSH連接成功后,轉(zhuǎn)入后臺運行摇肌。這樣一來擂红,你就可以在不中斷SSH連接的情況下,在本地shell中執(zhí)行其他操作

# 要關(guān)閉這個后臺連接围小,就只有用kill命令去殺掉進程
ssh -f -D 8080 host

問題與支持

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末昵骤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子肯适,更是在濱河造成了極大的恐慌变秦,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件框舔,死亡現(xiàn)場離奇詭異蹦玫,居然都是意外死亡,警方通過查閱死者的電腦和手機雨饺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門钳垮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人额港,你說我怎么就攤上這事∑缃梗” “怎么了移斩?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長绢馍。 經(jīng)常有香客問我向瓷,道長,這世上最難降的妖魔是什么舰涌? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任猖任,我火速辦了婚禮,結(jié)果婚禮上瓷耙,老公的妹妹穿的比我還像新娘朱躺。我一直安慰自己刁赖,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布长搀。 她就那樣靜靜地躺著宇弛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪源请。 梳的紋絲不亂的頭發(fā)上枪芒,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天,我揣著相機與錄音谁尸,去河邊找鬼舅踪。 笑死,一個胖子當(dāng)著我的面吹牛良蛮,可吹牛的內(nèi)容都是我干的抽碌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼背镇,長吁一口氣:“原來是場噩夢啊……” “哼咬展!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起瞒斩,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤破婆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后胸囱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體祷舀,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年烹笔,在試婚紗的時候發(fā)現(xiàn)自己被綠了裳扯。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡谤职,死狀恐怖饰豺,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情允蜈,我是刑警寧澤冤吨,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站饶套,受9級特大地震影響漩蟆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜妓蛮,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一怠李、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦捺癞、人聲如沸夷蚊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撬码。三九已至,卻和暖如春版保,著一層夾襖步出監(jiān)牢的瞬間呜笑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工彻犁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留叫胁,地道東北人。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓汞幢,卻偏偏與公主長得像驼鹅,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子森篷,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,500評論 2 359

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