歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> SSH入門學習基礎教程

SSH入門學習基礎教程

日期:2017/2/28 14:30:55   编辑:Linux教程

在Linux系統中,OpenSSH是目前最流行的遠程系統登錄與文件傳輸應用,也是傳統Telenet、FTP和R系列等網絡應用的換代產品。其中,ssh(Secure Shell)可以替代telnet、rlogin和rsh,scp(Secure Copy)與sftp(Secure FTP)能後替代ftp。

OpenSSH采用密鑰的方式對數據進行加密,確保數據傳輸的安全。在正式開始傳輸數據之前,雙方首先要交換密鑰,當收到對方的數據時,再利用密鑰和相應的程序對數據進行解密。這種加密的數據傳輸有助於防止非法用戶獲取數據信息。

OpenSSH采用隨機的方式生成公私密鑰。密鑰通常只需生成一次,必要時也可以重新制作。

當使用ssh命令登錄到遠程系統時,OpenSSH服務器的sshd守護進行將會發送一個公鑰,OpenSSH客戶端軟件ssh將會提示用戶確認是否接收發送的公鑰。同時,OpenSSH客戶端也會向服務器回傳一個密鑰,使OpenSSH連接雙方的每個系統都擁有對方的密鑰,因而能夠解密對方經由加密鏈路發送的加密數據。

OpenSSH服務器的公鑰與私玥均存儲在/etc/ssh目錄中。在OpenSSH客戶端,用戶收到的所有公鑰,以及提供密鑰的OpenSSH服務器的IP地址均存儲在用戶主目錄下的~/.ssh/known_hosts文件中(.ssh是一個隱藏目錄)。如果密鑰與IP地址不再匹配,OpenSSH將會認為某個環節出了問題。例如,重新安裝操作系統或者升級OpenSSH都會導致系統再次生成新的密鑰,惡意的網絡攻擊也會造成密鑰的變動。因此,當密鑰發生變化時,總是應當先了解密鑰發生變化的原因,以確保網絡訪問期間的數據安全。

通過OpenSSH遠程登錄時的延遲問題解決 http://www.linuxidc.com/Linux/2013-07/86879.htm

Ubuntu 12.10下OpenSSH的離線安裝方法 http://www.linuxidc.com/Linux/2013-04/82814.htm

OpenSSH升級步驟及注意事項詳解 http://www.linuxidc.com/Linux/2013-04/82123.htm

OpenSSH普通用戶無法登錄的幾種情況的解決方法 http://www.linuxidc.com/Linux/2012-05/59457.htm

通用線程: OpenSSH 密鑰管理,第 1 部分理解 RSA/DSA 認證 http://www.linuxidc.com/Linux/2011-08/39871.htm

RedHat安裝OpenSSH和配置sftp鎖定目錄 http://www.linuxidc.com/Linux/2012-12/75398.htm

1 安裝OpenSSH服務器

在Ubuntu中,OpenSSH的客戶端作為一個基礎系統軟件會隨這系統一起安裝,但OpenSSH服務器需要單獨安裝。安裝openssh-server服務器軟件包,可以使用apt-get、aptitude或synaptic等軟件工具。

$ sudo apt-get install openssh-server

安裝之後,可以使用以下命令驗證OpenSSH服務器的sshd守護進程是否已開啟。

$ pidof sshd

2 使用SSH登錄到遠程系統

在OpenSSH中,ssh是一個重要的客戶端應用程序。利用ssh,可以采用加密的通信方式,登錄到遠程系統,其語法格式如下:

ssh [options] [-l login_name][user@]hostname [command]

其中,”-llogin_name”選項用於指定用戶名,表示以哪一個用戶身份登錄到遠程系統。如果不提供用戶名,則以當前用戶的身份登錄到遠程系統。例如,下面命令形式表示以webgod用戶身份,采用默認的22端口,登錄到遠程系統(注意,這裡”Welcome to Ubuntu 12.04 LTS (GNU/Linux) ……https://helo.ubunut.com/”出自/etc/motd文件)。除了”-l”選項之外,為了以其他用戶身份登錄到遠程系統,還可以使用”user@hostname”的方式登錄到遠程系統。

第一次使用ssh登錄到遠程系統時,ssh將會給出一個警告信息,提示用戶確認連接的遠程系統是否正確。如果用戶確認yes,ssh將會在用戶主目錄的~/.ssh/known_hosts文件中存儲遠程系統的密鑰,同時也會把客戶端用戶的密鑰發送到遠程系統。當用戶再次登錄到同一遠程系統時,就不會再出現提示信息了。

3 使用ssh執行遠程系統命令

具體用法,在ssh命令後增加一條命令,命令前後使用雙引號括起來。

$ ssh [email protected] “uname -r”

這種一次性登錄,執行遠程命令,然後立即返回的功能是非常有用的。

4 使用SCP替代FTP

從網絡通信角度來看,FTP的數據傳輸方式是不安全的,因為FTP協議在網絡中傳輸的用戶名、密碼和數據沒有采取任何加密措施。比較安全的方法是采用OpenSSH的SFTP和SCP。

scp是OpenSSH中的另一個重要客戶端軟件。scp命令的格式如下:

scp [[user@host1:]file1[[user@]host2:]file2

第一個參數是源文件,第二個參數是目的文件。當需要復制遠程系統中的文件時,SCP首先需要成功登錄到遠程系統中,然後才能開始傳輸文件,因此要求提供遠程系統的名字、用戶名和密碼。

利用scp下載文件

例如,要把遠程系統中的~/.ssh/id_rsa.pub文件復制到本地系統的/tmp目錄中。

$ scp [email protected]:~/.ssh/id_rsa.pub /tmp

假定已經把sshd守護進程監聽的TCP端口修改為435。要使用該端口進行文件復制,則可以用如下命令。

$ scp -P 534 [email protected]:~/.ssh/id_rsa.pub /tmp

利用scp上傳文件

$ scp /etc/hosts [email protected]:/tmp

$ scp -P 435 /etc/hosts [email protected]: /tmp

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-06/103008p2.htm

Copyright © Linux教程網 All Rights Reserved