OpenSSH

維基百科,自由的百科全書
跳至導覽 跳至搜尋
OpenSSH
File:Openssh.gif
"Keeping your communiqués secret"
File:OpenSSH CLI.png
開發者OpenBSD計劃組
首次釋出1999年12月1日,​26年前​(1999-12-01
目前版本
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    原始碼庫
    • {{URL|example.com|可选的显示文本}}
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    程式語言C語言
    引擎
      Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
      作業系統跨平台[1]
      標準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[2]
      類型遠端訪問
      特許條款簡化版BSD特許條款
      ISC特許條款
      公共領域

      OpenSSHOpenBSD Secure Shell)是使用SSH通過計算機網絡進行加密通訊的實現。它是取代由SSH Communications Security開發的商用版本的開放原始碼方案。目前OpenSSH是OpenBSD的一個子計劃。

      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子目錄中的authorized_keys檔案。

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

      通過ssh可以直接在遠端執行命令:ssh username@host "command_line" ,但注意需要使用單引號或者雙引號把命令列包起來。如果要執行不在PATH環境變量里的命令,需要使用絕對路徑。如果被執行的命令列需要與用戶互動(需要 TTY),應該使用-t選項,例如 ssh -t username@host "command_line"

      通過ssh也可以遠端執行本地指令碼,如 ssh username@host < my.sh ,但在Windows上可能會遇到問題。如果本地指令碼帶有命令列參數,需要使用類似這樣的格式:ssh username@host 'bash -s' < my.sh helloworld

      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. ^ OpenSSH Portable Release. OpenBSD. [15 October 2015]. (原始內容存檔於2018-02-16). 
      2. ^ Specifications implemented by OpenSSH. The OpenBSD Project. The OpenBSD Project. [14 October 2015]. (原始內容存檔於2018-01-25). 

      外部連結[編輯]