SSH學習之一 OpenSSH基本使用

2021-08-16 23:27:50 字數 2528 閱讀 1150

在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都會導致系統再次生成新的金鑰,惡意的網路攻擊也會造成金鑰的變動。因此,當金鑰發生變化時,總是應當先了解金鑰發生變化的原因,以確保網路訪問期間的資料安全。

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

$ sudo apt-get install openssh-server

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

$ pidof sshd

在openssh中,ssh是乙個重要的客戶端應用程式。利用ssh,可以採用加密的通訊方式,登入到遠端系統,其語法格式如下:

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

其中,」-llogin_name」選項用於指定使用者名稱,表示以哪乙個使用者身份登入到遠端系統。如果不提供使用者名稱,則以當前使用者的身份登入到遠端系統。例如,下面命令形式表示以webgod使用者身份,採用預設的22埠,登入到遠端系統(注意,這裡」welcome to ubuntu 12.04 lts (gnu/linux) ……出自/etc/motd檔案)。除了」-l」選項之外,為了以其他使用者身份登入到遠端系統,還可以使用」user@hostname」的方式登入到遠端系統。

第一次使用ssh登入到遠端系統時,ssh將會給出乙個警告資訊,提示使用者確認連線的遠端系統是否正確。如果使用者確認yes,ssh將會在使用者主目錄的~/.ssh/known_hosts檔案中儲存遠端系統的金鑰,同時也會把客戶端使用者的金鑰傳送到遠端系統。當使用者再次登入到同一遠端系統時,就不會再出現提示資訊了。

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

$ ssh [email protected] 「uname -r」

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

從網路通訊角度來看,ftp的資料傳輸方式是不安全的,因為ftp協議在網路中傳輸的使用者名稱、密碼和資料沒有採取任何加密措施。比較安全的方法是採用openssh的sftp和scp。

scp是openssh中的另乙個重要客戶端軟體。scp命令的格式如下:

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

第乙個引數是原始檔,第二個引數是目的檔案。當需要複製遠端系統中的檔案時,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

PHP,thinkphp學習筆記之一 基

第一,什麼是php?php就是免費的,開源的,mvc開發模式,物件導向的,輕量級的語言 m model 模型 工作 負責資料操作 v viel 檢視模板,工作 就是負責前台 c controller 模組功能 控制器 工作 負責描述功能 第二 環境搭建 安裝 wampserver 整合環境 裝好後在...

SSH學習之四OpenSSH安全

openssh是linux unix下一款加密通訊軟體,同時也是我們用來遠端控制linux unix伺服器重要的必裝軟體。對於各版本的linux及unix發行版而言,openssh的配置檔案位置都各不一樣。如ubuntu下openssh配置檔案就在 etc ssh sshd config。opens...

Salesforce開發者學習筆記之一 基本知識

本文介紹了salesforce開發平台的基本知識,包括如下內容 salesforce平台介紹 salesforce基本術語 定製和擴充套件salesforce平台 我們首先介紹一下什麼是salesforce平台,這個平台提供哪些功能,以及能夠實現什麼樣的使用者需求.salesforce其核心是乙個基...