03.遠程登錄和復制檔案
| 序號 | 命令 | 對應英文 | 作用 |
|---|---|---|---|
| 01 | ssh 用戶名@ip | secure shell | 關機/重啟 |
| 02 | scp 用戶名@ip:用戶名或路徑 用戶名@ip:檔案名或路徑 | secure copy | 遠程復制檔案 |
3.1 ssh 基礎(重點)
在Linux中SSH是非常常用的工具,通過SSH客戶端我們可以連接到運行了SSH服務器的遠程機器上

- SSH客戶端是一種使用
Secure shell(SSH)協議連接到計算機的軟體程式 - SSH是目前較可靠,專為遠程登錄會話和其他網路服務提供安全性的協議
- 利用
SSH 協議可以有效防止遠程管理程序中的資訊泄露 - 通過
SSH 協議可以對所有傳輸的資料進行加密,也能夠防止DNS欺騙和IP欺騙 SSH的另一項有點事傳輸的資料可以是經過壓縮的,所以可以加快傳輸的速度
- 利用
1)域名 和 埠號
域名
- 由一串用點分隔的名字組成,eg:
www.baidu.com - 是IP地址的別名,方便用戶記憶
埠號
- IP地址:通過IP地址找到網路上的計算機
- 埠號:通過埠號可以找到計算機上運行的應用程式
- SSH服務器的默認埠號是
22,如果是默認埠號,在連接的時候可以省略
- SSH服務器的默認埠號是
- 常見服務埠號串列:
| 序號 | 服務 | 埠號 |
|---|---|---|
| 01 | SSH服務器 | 22 |
| 02 | Web服務器 | 80 |
| 03 | HTTPS | 443 |
| 04 | FTP服務器 | 21 |
軟體中:
訪問地址組成的結構:ip地址+:+埠號
Linux中:
eg:$ ssh -p埠號 用戶名@IP地址
注意:
在這之前要確定LInux上有安裝ssh操作如下:
1.ps - e| grep ssh 如果沒有看到行程類似:
就說明沒有啟動或安裝
2.安裝ssh:sudo apt-grep install openssh-server,之后輸入yes,進行安裝,再次通過ps - e| grep ssh確定是否啟動
3.啟動ssh:sudo /etc/init.d/ssh start
4.ssh連接客戶端:$ ssh 用戶名@IP地址:埠號,或者不用輸入埠號
2)SSH客戶端的簡單使用
ssh [-p port] user@remote
user是在遠程機器上的用戶名,如果不指定的話,就默認為當前用戶remote是遠程機器的地址,可以是IP/域名,或者是后面會提到的別名port是SSh Server箭頭的埠,如果不指定,就默認為默認22
提示:
- 使用
exit退出當前用戶的登錄
注意:
ssh這個終端命令只能在linux或UNIX系統下使用- 如果在
Windows系統中,可以安裝PuTTY或者XShell客戶端軟體即可
提示:
- 在作業中,SSH服務器的埠很可能不是22,如果遇到這種情況就需要使用
-p選項,指定正確埠號,否則無法正常連接到服務器
3)Windows下SSH客戶端安裝
Puttyhttps://www.chiark.greenend.org.uk/~sgtatham/putty/latest.htmlXShellhttp://xshellcn.com
3.2 scp(掌握)
- scp就是
secure copy,是一個在Linux下用來進行遠程拷貝檔案的命令 - 它的地址格式與ssh基本相同,需要注意的是,在指定埠是用的是大寫
-p而不是小寫的

user是用戶名,remote是遠程IP
1# 把本地當前目錄下的01.py 檔案復制到遠程家目錄下的 Desktop/01.py
2# 注意: `:`后的路徑如果不是絕對路徑,則以用戶的家目錄作為參照路徑
scp -P port 01.py user@remote:Desktop/01.py
3# 把遠程家目錄小的Desktop /01.py 檔案復制到本地當前目錄下的01.py
scp -P port 01.py user@remote:Desktop/01.py
4# 加上 -r選項可以傳送檔案夾
5# 把當前目錄下的demo 檔案夾復制到遠程家目錄下的Desktop
scp -r demo user@remote:Desktop
6# 把遠程家目錄下的Desktop 復制到當前目錄下的demo檔案夾
scp -r user@remote:Desktop demo
| 選項 | 含義 |
|---|---|
| -r | 若給出源檔案是目錄檔案(檔案夾),則scp將遞回復制該目錄下的 所有子目錄和檔案,目標檔案必須為一個目錄名 |
| -P | 若遠程SSH服務器的埠不是22,需要使用大寫字母-P選項指定埠 |
注意:
scp在這個終端命令只能在linuxhuoUNIX系統下使用- 如果在
windows中,可以安裝PuTTY,使用pscp命令列工具或者安裝FileZilla使用FTP進行檔案傳輸
FileZilla
- 官網:https://filezilla-project.org/download.php?type=client
FileZilla在傳輸檔案時,使用的是FTP服務而不是SSH服務
報錯

解決方法
1.防火墻的問題,由于我的防火墻日常關閉,所有跟這個沒關系
2.建立新站點,采用 stfp + 埠 22 的方式
FIlezilla -> 檔案 -> 站點管理->新站點->常規里的協議:STFP-SSH ->主機:遠程的IP 用戶名和密碼->連接
3.3 SSH高級(高級)
- 免密登錄
- 配置別名
提示:有關SSH配置資訊都保存在家目錄下的.ssh目錄下
1)免密登錄
步驟:
1.配置公鑰
- 執行
ssh-keygen即可生成SSH鑰匙,一路ENTER即可 ,之后會生成id_rsa id_rsa.pub 兩個檔案
2.上傳公鑰
- 執行
ssh-copy-id -p port user@remote,可以讓遠程服務器記住我們的公鑰
下圖是操作結果

示意圖:

本地使用私鑰對資料進行加密/解密
服務器使用公鑰對資料進行加密/解密
非對稱加密演算法
- 使用公鑰加密的資料,需要使用私鑰解密
- 使用私鑰加密的資料,需要使用公鑰解密
2)配置別名
每次輸入ssh-copy-id -p port user@remote,時間久也很麻煩,特別是當user,remote和port都得輸入,而且還不好記憶
但配置別名就會很方便了,例如:ssh mac
具體操作是在本地計算機的~/.ssh/chonfig里追加以下內容:
Host mac
HostName ip地址
User 用戶名
port 22
保存之后,就可以使用ssh mac實作遠程別名登錄,scp同樣可以使用
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/156140.html
標籤:Linux
下一篇:3-1 用戶權限-學習目標
