热门问题
时间线
聊天
视角

OpenSSH

Secure Shell (ssh) 協定的客戶端與伺服器 来自维基百科,自由的百科全书

OpenSSH
Remove ads

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

快速預覽 開發者, 首次釋出 ...

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

Remove ads

歷史

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埠
Remove ads

另請參閱

參考文獻

外部連結

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads