2-3 遠程管理命令-SSH工做方式簡介

03.遠程登陸和複製文件

序號 命令 對應英文 做用
01 ssh 用戶名@ip secure shell 關機/重啓
02 scp 用戶名@ip:用戶名或路徑 用戶名@ip:文件名或路徑 secure copy 遠程複製文件

3.1 ssh 基礎(重點)

在Linux中SSH是很是經常使用的工具,經過SSH客戶端咱們能夠鏈接到運行了SSH服務器的遠程機器上php

  • SSH客戶端是一種使用Secure shell(SSH)協議鏈接到計算機的軟件程序
  • SSH是目前較可靠,專爲遠程登陸會話和其餘網絡服務提供安全性的協議
    • 利用SSH 協議能夠有效防止遠程管理過程當中的信息泄露
    • 經過SSH 協議能夠對全部傳輸的數據進行加密,也可以防止DNS欺騙和IP欺騙
    • SSH的另外一項有點事傳輸的數據能夠是通過壓縮的,因此能夠加快傳輸的速度
1)域名 和 端口號

域名html

  • 由一串用點分隔的名字組成,eg:www.baidu.com
  • IP地址的別名,方便用戶記憶

端口號linux

  • IP地址:經過IP地址找到網絡上的計算機
  • 端口號:經過端口號能夠找到計算機上運行的應用程序
    • SSH服務器的默認端口號是 22,若是是默認端口號,在鏈接的時候能夠省略
  • 常見服務端口號列表:
    序號|服務|端口號
    -|-|-
    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 若是沒有看到進程相似:shell

就說明沒有啓動或安裝
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地址:端口號,或者不用輸入端口號windows

2)SSH客戶端的簡單使用

ssh [-p port] user@remote安全

  • user是在遠程機器上的用戶名,若是不指定的話,就默認爲當前用戶
  • remote是遠程機器的地址,能夠是IP/域名,或者是後面會提到的別名
  • portSSh Server箭頭的端口,若是不指定,就默認爲默認22

提示:服務器

  • 使用exit退出當前用戶的登陸

注意:網絡

  • ssh這個終端命令只能在linuxUNIX系統下使用
  • 若是在Windows系統中,能夠安裝PuTTY或者XShell客戶端軟件便可

提示:ssh

  • 在工做中,SSH服務器的端口極可能不是22,若是遇到這種狀況就須要使用-p選項,指定正確端口號,不然沒法正常鏈接到服務器
3)Windows下SSH客戶端安裝
  • Putty https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
  • XShellhttp://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在這個終端命令只能在linuxhuo UNIX系統下使用
  • 若是在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,remoteport都得輸入,並且還很差記憶
但配置別名就會很方便了,例如:ssh mac
具體操做是在本地計算機的~/.ssh/chonfig裏追加如下內容:
Host mac HostName ip地址 User 用戶名 port 22
保存以後,就可使用ssh mac實現遠程別名登陸,scp一樣可使用

相關文章
相關標籤/搜索