今天和大家介紹ssh的幾個(gè)應(yīng)用,常見的應(yīng)用有使用ssh連接遠(yuǎn)程的服務(wù)器、使用sftp進(jìn)行文件的傳輸、通過ssh進(jìn)行異地備份等。
連接遠(yuǎn)程主機(jī)
連接遠(yuǎn)程服務(wù)器這是我們最常用的功能了,連接上遠(yuǎn)程的服務(wù)器,然后對服務(wù)器進(jìn)行管理。
如何你的客戶機(jī)是windows的話,那么你需要安裝終端工具,比如xshell、Terminator、Tmux等,然后使用這些終端工具連上遠(yuǎn)程服務(wù)器。如何客戶機(jī)是linux的話,那么可以直接使用ssh命令。
下面給出常用的命令用法
-
連接遠(yuǎn)程主機(jī) ?ssh [賬號(hào)@]IP [-p 指定端口]
-
不登陸,直接發(fā)送一個(gè)命令給遠(yuǎn)程服務(wù)器執(zhí)行 ssh -f [賬號(hào)@]IP [-p 指定端口] 命令
下面來演示遠(yuǎn)程連接服務(wù)器
#?ssh?121.196.12.64 The?authenticity?of?host?'121.196.12.64?(121.196.12.64)'?can't?be?established. ECDSA?key?fingerprint?is?SHA256:wx0RHE8fcCoad6YKw0Ex4NE+QjwRiTYxC2s2g/DqPUU. ECDSA?key?fingerprint?is?MD5:43:2c:7a:12:24:1d:86:3a:b0:a0:b7:95:c2:cf:7b:ab. Are?you?sure?you?want?to?continue?connecting?(yes/no)?
第一次連接時(shí),會(huì)詢問你是否要進(jìn)行連接,這里輸入yes。輸入yes之后,就要求你輸入密碼了
root@121.196.12.64's?password:? Welcome?to?Alibaba?Cloud?Elastic?Compute?Service?! Activate?the?web?console?with:?systemctl?enable?--now?cockpit.socket Last?login:?Thu?Nov?19?16:25:42?2020?from?114.103.36.247
當(dāng)正確輸入密碼后,就成功了連接上了遠(yuǎn)程服務(wù)器。
當(dāng)遠(yuǎn)程主機(jī)的公鑰被接受以后,它就會(huì)被保存在文件$HOME/.ssh/known_hosts之中。下次再連接這臺(tái)主機(jī),系統(tǒng)就會(huì)認(rèn)出它的公鑰已經(jīng)保存在本地了,從而跳過警告部分,直接提示輸入密碼。
每個(gè)SSH用戶都有自己的known_hosts文件,此外系統(tǒng)也有一個(gè)這樣的文件,通常是/etc/ssh/ssh_known_hosts,保存一些對所有用戶都可信賴的遠(yuǎn)程主機(jī)的公鑰。
如果想退出登陸的話,輸出exit即可等出登陸
#?exit logout Connection?to?121.196.12.64?closed.
模擬ftp的文件傳輸方式:SFTP
使用SSH是用來進(jìn)行操控遠(yuǎn)程主機(jī)的,如果只是想從遠(yuǎn)程服務(wù)器的資源進(jìn)行下載,或上傳本地文件到服務(wù)器上,那么使用sftp或scp就行了。這兩個(gè)命令也是通過ssh的端口。
通過sftp登陸
#?sftp?root@121.196.12.64 root@121.196.12.64's?password:? Connected?to?121.196.12.64. sftp>????<p>針對sftp的交互模式,有非常多的命令,下面給出一些常見的交互命令,從三大類來看。</p>
-
針對遠(yuǎn)程服務(wù)器的命令:如ls、pwd、mkdir等
-
針對本機(jī)的命令:lcd、lls等
-
關(guān)于上傳下載的命令:put(上傳文件)、get(下載文件)。
下面演示上傳及下載操作。
#?從遠(yuǎn)程服務(wù)器下載一個(gè)文件到本地 sftp>?ls 1.txt????????install.sh??? sftp>?get?1.txt Fetching?/root/1.txt?to?1.txt /root/1.txt?????????????????????????????????????????????????????????????????????????100%????6?????0.0KB/s???00:00???? sftp>?lls 1.txt??install.sh??job1.php??job2.php??job3.php??learnshell??logrotate_learn.log??logrotate_learn.log.1.gz #?上傳本地文件到服務(wù)器上 sftp>?put?job1.php Uploading?job1.php?to?/root/job1.php job1.php????????????????????????????????????????????????????????????????????????????100%???34?????0.3KB/s???00:00???? sftp>?ls 1.txt????????install.sh???job1.php
文件異地傳輸:SCP
SCP這個(gè)命令是可以用來進(jìn)行異地備份用的。SCP最簡單的用法如下
#?上傳文件 scp?[-pr]?[-l?速率]?file?[賬號(hào)@]主機(jī):目錄名? #?下載文件 scp?[-pr]?[-l?速率]?[賬號(hào)@]主機(jī):file?目錄名
選項(xiàng)與參數(shù):
-
-p 保留文件屬性
-
-r 遞歸操作
-
-l 限制速率,后面接數(shù)值;如1024則表示1024k bytes/s
對于重要文件的備份,遵循一個(gè)原則“永遠(yuǎn)不要把雞蛋都放在一個(gè)籃子里”。除了本地備份外,我們還應(yīng)該進(jìn)行異地備份。經(jīng)常使用scp命令加上系統(tǒng)的定時(shí)任務(wù),來進(jìn)行異地備份,如:
*?2?1?*?*?scp?-rp?root@101.*.*.185:/backup? >?/root/backup/scp_$(date?+$Y%m%d)??1>/dev/null?2>&1
更多相關(guān)技術(shù)文章,請?jiān)L問linux教程欄目!