序言
在玩github時(shí)甥厦,我們一般都會(huì)用到SSH仆救,它的全稱(chēng)叫Secure Shell,通過(guò)SSH我們可以遠(yuǎn)程登錄到Linux服務(wù)器矫渔,因?yàn)樵趥鬏斶^(guò)程中進(jìn)行了加密處理彤蔽,其安全性比Telnet和Pop要高。
本文默認(rèn)你在本地機(jī)器上安裝了SSH client庙洼,在遠(yuǎn)程機(jī)器上安裝了SSH server顿痪。行首local代表server端。
一. 簡(jiǎn)單用法
ssh user@remote -p port
- user 是你在遠(yuǎn)程機(jī)器上的用戶(hù)名蚁袭,如果不指定的話默認(rèn)為當(dāng)前用戶(hù)
- remote 是遠(yuǎn)程機(jī)器的地址征懈,可以是 IP,域名揩悄,或者是后面會(huì)提到的別名
- port 是 SSH Server 監(jiān)聽(tīng)的端口卖哎,如果不指定的話就為默認(rèn)值 22
執(zhí)行完這條指令后,ssh會(huì)要求你輸入密碼删性,輸入密碼后即會(huì)登錄到遠(yuǎn)程服務(wù)器
二. 使用 SSH 鑰匙登錄
如果我們經(jīng)常需要登錄到遠(yuǎn)程服務(wù)器亏娜,然而每次都要輸入密碼,這樣會(huì)比較煩蹬挺。在這里我們可以配置SSH鑰匙來(lái)實(shí)現(xiàn)免密碼登錄维贺。
ssh-keygen
在客戶(hù)端執(zhí)行這條命令可生成SSH鑰匙,一路按回車(chē)巴帮。在~/.ssh/id_rsa.pub
文件里存放了公匙溯泣,在~/.ssh/id_rsa
文件里存放了密匙。現(xiàn)在我們可以把公匙文件里的代碼追加到遠(yuǎn)程服務(wù)器里的.ssh/authorized_keys
文件里榕茧。完成后ssh登錄遠(yuǎn)程服務(wù)器就不需要密碼了垃沦。
生成密匙后,我們也可以用ssh-copy-id user@remote -p port
命令來(lái)放置公匙到遠(yuǎn)程服務(wù)器中用押,原理和上面是一個(gè)意思栏尚。
PS:想想我們用git時(shí)不也經(jīng)常是用SSH鑰匙來(lái)登錄github的嗎。
三. 配置別名
雖然我們配置了密匙不要輸入密碼了只恨,但是我還是要輸入ssh user@remote -p port
命令的啊译仗,畢竟服務(wù)器多了不容易記啊。幸好我們可以配置別名官觅,在~/.ssh/config
文件里追加一下內(nèi)容
Host centos
HostName remote
User user
Port port
保存之后纵菌,我們就可以直接使用ssh centos
來(lái)登錄。如果沒(méi)有config文件的話休涤,我們可以新建一個(gè)咱圆。
四. SCP命令
不同的Linux之間copy文件常用有3種方法:
- ftp,也就是其中一臺(tái)Linux安裝ftp Server功氨,這樣可以另外一臺(tái)使用ftp的client程序來(lái)進(jìn)行文件的copy序苏。
- 采用samba服務(wù),類(lèi)似Windows文件copy 的方式來(lái)操作捷凄,比較簡(jiǎn)潔方便忱详。
- 利用scp命令來(lái)進(jìn)行文件復(fù)制。
scp是有Security的文件copy跺涤,基于ssh登錄匈睁。操作起來(lái)比較方便监透,比如要把當(dāng)前一個(gè)文件copy到遠(yuǎn)程另外一臺(tái)主機(jī)上,可以如下命令:
scp /home/daisy/full.tar.gz user@remote:/home/root
然后會(huì)提示你輸入另外那臺(tái)遠(yuǎn)程主機(jī)的user的登錄密碼航唆,接著就開(kāi)始copy了胀蛮。
如果想反過(guò)來(lái)操作,把文件從遠(yuǎn)程主機(jī)copy到當(dāng)前系統(tǒng)糯钙,也很簡(jiǎn)單:
scp user@remote:/home/root/full.tar.gz home/daisy/full.tar.gz
如果是復(fù)制的文件夾的話添加一個(gè)-r選項(xiàng)粪狼。
幾個(gè)用的參數(shù) :
-v 和大多數(shù) linux 命令中的 -v 意思一樣 , 用來(lái)顯示進(jìn)度 . 可以用來(lái)查看連接 , 認(rèn)證 , 或是配置錯(cuò)誤 .
-C 使能壓縮選項(xiàng) .
-P 選擇端口 . 注意 -p 已經(jīng)被 rcp 使用 .
-4 強(qiáng)行使用 IPV4 地址 .
-6 強(qiáng)行使用 IPV6 地址 .
五. 使程序在后臺(tái)運(yùn)行
如果我們退出了SSH程序,Linux會(huì)馬上kill掉我們的程序任岸。如果我們有長(zhǎng)時(shí)間運(yùn)行的程序再榄,而我們的SSH程序又要關(guān)掉怎么辦呢,如何保持我們的程序一直進(jìn)行下去呢演闭。tmux解決了我們這個(gè)問(wèn)題,tmux是一個(gè)會(huì)話管理程序颓帝,他會(huì)保持程序一直運(yùn)行著米碰。安裝完tmux后執(zhí)行
remote$ tmux
這樣我們就進(jìn)入到了 tmux管理的會(huì)話中,之后你再運(yùn)行任何東西都不會(huì)因?yàn)槟阃顺?ssh而被殺死购城。要暫時(shí)離開(kāi)這個(gè)會(huì)話吕座,可以先按下 ctrl+b再按下 d。要恢復(fù)之前的會(huì)話瘪板,只需要執(zhí)行
remote$ tmux attach
tmux還能管理多個(gè)窗口吴趴、水平豎直切分、復(fù)制粘貼等等侮攀,我們可以看看tmux速成教程來(lái)入門(mén)锣枝。
六. putty
在windows系統(tǒng)上,我們可以用putty作為SSH client兰英。putty配套的工具都很有用撇叁。