OpenSSH

Secure Shell (ssh) 協定的客戶端與伺服器

OpenSSHOpenBSD Secure Shell)是使用SSH透過計算機網路加密通訊的實現。它是取代由SSH Communications Security所提供商用版本的開放原始碼方案。目前OpenSSH是OpenBSD的子計畫。

OpenSSH
"Keeping your communiqués secret"
"Keeping your communiqués secret"
開發者OpenBSD計畫組
首次釋出1999年12月1日,​24年前​(1999-12-01
目前版本
  • 9.7 (2024年3月11日;穩定版本)[1]
編輯維基數據鏈結
原始碼庫 編輯維基數據鏈結
程式語言C語言
作業系統跨平台[2]
標準RFC 4250, RFC 4251, RFC 4252, RFC 4253, RFC 4254, RFC 4255, RFC 4256, RFC 4335, RFC 4344, RFC 4345, RFC 4419, RFC 4462, RFC 5656, RFC 6594, RFC 6668, RFC 7479[3]
類型遠端訪問
授權條款簡化版BSD授權條款
ISC授權條款
公共領域
網站www.openssh.com/ 編輯維基數據

OpenSSH常常被誤認以為與OpenSSL有關聯,但實際上這兩個計畫有不同的目的,不同的發展團隊,名稱相近只是因為兩者有同樣的軟體發展目標──提供開放原始碼的加密通訊軟體。

歷史

OpenSSH是在1999年10月第一次在OpenBSD 2.6裡出現,當初的計畫是取代由SSH Communications Security所提供的SSH軟體。

發展及程式架構

程式主要包括了幾個部份:

  • ssh
rlogin英語rloginTelnet的替代方案。
  • scpsftp
rcp的替代方案,將檔案複製到其他電腦上。
  • sshd
SSH伺服器。
  • ssh-keygen
產生RSAECDSA金鑰,用來認證用。
  • ssh-agentssh-add
幫助使用者不需要每次都要輸入金鑰密碼的工具。
  • ssh-keyscan
掃描一群機器,並記錄其公鑰

常見用法

ssh -V #查看版本

一般在個人主目錄下的.ssh子目錄中的authorized_keys檔案為公鑰,可用於ssh通過公私秘鑰認證方式登入作業系統。

ssh會把訪問過的主機的公鑰(public key)記錄在~/.ssh/known_hosts。當下次訪問相同電腦時,OpenSSH會核對公鑰。如果公鑰不同,OpenSSH會發出警告, 避免受到DNS Hijack之類的攻擊。

通過ssh可以直接遠端執行目標機上的命令列: ssh username@host "command_line" 注意使用單引號或者雙引號把命令列包圍起來(還可以多行輸入)。如果被執行的命令列需要與使用者互動(需要 TTY),應該使用-t選項,例如 ssh -t username@host "command_line"

通過ssh可以遠端執行本地指令碼,如 ssh username@host < my.sh ,但在Windows上暫時可能不行。如果本地指令碼帶有命令列參數,需要如此格式: ssh username@host 'bash -s' < my.sh helloworld

通過ssh可以遠端執行遠端主機上的指令碼,如 ssh username@host /home/nick/test.sh arg1 arg2 注意,此時需要指定指令碼的絕對路徑!

SSH的config檔案

在個人主目錄下的.ssh子目錄中的config檔案。範例:

# configuration 1
Host cluster
	HostName 192.168.11.11
	User tom

# configuration 2
Host=aliyun
	Hostname=202.44.2.2
	User tom

每項組態都是参数名 参数值参数值=参数名兩種形式,可以混用。参数名不區分大小寫,参数值區分大小寫。

  • Host 主機的暱稱。可用於在ssh命令列中代替 username@ip_address
  • HostName 主機IP位址或主機名
  • User ssh登入時使用的使用者名稱
  • IdentityFile 認證憑證檔案,預設位置是~/.ssh/id_rsa~/ssh/id_dsa等,如果採用預設的憑證,可以不用設定此參數,除非憑證放在某個自訂的目錄,那麼就需要設定該參數來指向該憑證
  • Port SSH訪問主機的埠號,預設是22埠

另請參閱

參考文獻

  1. ^ 1.0 1.1 release-9.7. 
  2. ^ OpenSSH Portable Release. OpenBSD. [15 October 2015]. (原始內容存檔於2018-02-16). 
  3. ^ Specifications implemented by OpenSSH. The OpenBSD Project. The OpenBSD Project. [14 October 2015]. (原始內容存檔於2018-01-25). 

外部連結