遠程登錄與文件傳輸指令——ssh與scp


遠程登錄指令 ssh

   ssh 是一個用於登錄遠程主機並在遠程主機上執行命令的程序。ssh 設計的本意在於在一個不確定的網絡環境下為兩個互不信任的主機提供加密通信功能。在 Linux 桌面版本上,一般內置有 ssh 命令供用戶直接使用( 提供的是 ssh 客戶端 )。在Windows環境下,用戶需要下載獨立的提供 ssh 功能的軟件(如 Putty )才能使用類似功能。

  ssh常用參數

    ssh [Options] [user@]hostname [command]
常用參數:
    -1            // 強制 ssh 使用第一版協議( protocol version 1),默認使用的是第二版協議
    -2            // 強制 ssh 使用第二版協議( protocol version 2)
    -4            // 只使用IPv4地址
    -6            // 只使用IPv6地址
    -p xxx       // 指定遠程主機上使用的端口號( 默認使用的端口為 22 )             

  ssh常用用法

  (1)遠程登錄

    ssh hostname    //其中 hostname 可以為IP地址或域名。登錄時會要求提供用戶名和密碼

    ssh user@hostname //同上,如 ssh yh@1.2.3.4 .在指定用戶名后,登錄時僅提供密碼即可

  (2)遠程執行命令

    ssh hostname command  // 遠程執行 command 命令並返回顯示結果,而不是顯示登錄窗口,如 ssh 1.2.3.4 ls -l ,在驗證用戶名和密碼后,即會返回在遠程主機上執行 ls -l 命令的結果。

  其他

  默認情況下,Linux 桌面版本中僅安裝了 ssh 客戶端,而沒有安裝 ssh 服務端。即主機僅能連接遠程服務端,而不能處理其他主機的連接請求。用戶可通過如下命令安裝 ssh 服務端。

    sudo apt-get install openssh-server    //安裝 ssh 服務端
    sudo apt-get install openssh-client    //安裝 ssh 客戶端

  安裝成功后,即可通過 sshd 命令運行服務器端程序。sshd 默認的配置文件位於 /etc/ssh/sshd_config ,用戶可以通過修改其中的內容修改服務器端的默認選項( 通過 man sshd_config 了解具體信息),常用的修改包括修改 ssh 服務使用的默認端口( 默認為 22 )。

  在使用 ssh 服務登錄至遠程主機后,僅能通過一個終端界面進行操作。用戶可借助一些終端復用軟件如 tmux / screen 命令等進行終端復用,可以參考筆者的博文screen 命令基本操作教程終端復用工具 tmux 基本操作教程

  參考資料

  (1)ssh manpage,通過 man ssh 查看

  (2)更多 ssh 功能的使用,可以參考 Linux 中國:Linux 下 SSH 命令實例指南

  (3)Ubuntu Documentation OpenSSH Server

  (4)更多 ssh 參數解釋,可參考 ssh

 

文件傳輸指令scp

  scp( secure copy )是一個遠程文件拷貝程序,它允許主機之間通過網絡實現文件的拷貝。scp 命令使用 ssh 進行數據傳輸,並提供與 ssh 相同的安全性保護,故而使用時的驗證與 ssh 命令類似。Linux 和 Mac 提供內置的 scp 工具,而 Windows 環境下則需要借助諸如 pscp 等軟件實現該功能。

  scp常用參數

  scp [Options] source dest
   -P //指定進行數據傳輸使用的端口號,P為大寫 -r //遞歸復制整個目錄 -q //安靜模式,不顯示額外信息 -v //詳細模式,輸出 scp 和 ssh 的詳細運行過程信息,可用於調試

  scp常用用法

  (1)復制本機文件至遠端主機

    scp local_path username@host_address:remote_path  //復制本地文件至遠端主機

  如 scp ~/test.txt yh@127.0.0.1:/home/yh ,將本地當前用戶目錄下的test.txt文件復制至遠程用戶 yh 的主目錄下。其中,可以不指定遠端用戶名(則在驗證時輸入用戶名),遠端文件路徑既可以為目錄路徑,也可為最終的文件路徑,表示復制后的文件名。

  (2)復制遠端主機文件至本地主機

   scp username@host_address:remote_path local_path  //復制遠端主機文件至本地

  如 scp yh@127.0.0.1:~/test.txt /home/yh ,將遠端用戶 yh 的主目錄下的 test.txt 文件復制至本地用戶 yh 的主目錄中。

  以上命令中,若指定了用戶名,則后續僅需輸入密碼進行驗證,而若未指定用戶名,則后續需要輸入用戶名和密碼進行驗證。用戶可以通過 -P 參數指定使用特定的端口,使用 -r 命令對某個目錄進行遞歸的復制操作。

  其他

  Windows環境下,需要安裝如 pscp 等軟件使用 scp 類似的功能。可在這里下載 pscp.exe 文件。

  用戶可通過以下方式運行該文件:

  (1) 將 pscp.exe 所在目錄路徑加入系統環境變量 Path 中,則可在任意命令行路徑下通過 pscp 命令執行 pscp.exe 程序;

  (2) 切換命令行路徑至 pscp.exe 所在的目錄( 命令行下的 cd 命令 ,或直接在 pscp.exe 所在文件目錄界面中,按住 Shift ,右鍵 -> 在此打開命令行窗口 ),則可在命令行中通過 pscp 或 ./pscp.exe 執行 pscp.exe 程序;

   Windows環境下 pscp 程序提供與 Linux 環境中 scp 命令相似的功能。

    pscp local_path user@host_ip:dest_path         //復制本地文件至遠端主機
    pscp user@host_ip:file_path local_path            //復制遠端主機文件至本地主機

  值得注意的是,Windows環境下的文件路徑的格式為 F:\Users\yh\Desktop,而對應的 Linux 環境下的路徑格式為 /home/yh/ ,兩者路徑的分割符是不一樣的。

 

  參考資料

  (1) scp manpage,通過 man scp 查看

  (2)Linux scp 命令

 

  另注:以上命令是以純命令行的方式進行本地主機與遠端服務器之間的交互,實際想要更加方便快捷的與服務器之間進行文件傳輸,可以開啟遠程主機的 ftp server 服務,同時在本地主機上安裝諸如 FileZilla 等 ftp 客戶端軟件,通過這些客戶端軟件去連接遠程服務器,即可通過圖形界面的方式較為便捷的使用本地主機與遠端服務器之間的文件交互功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM