OpenSSH(OpenBSD Secure Shell)是使用SSH透過計算機網路加密通訊的實現。它是取代由SSH Communications Security所提供商用版本的開放原始碼方案。目前OpenSSH是OpenBSD的子計畫。
OpenSSH常常被誤認以為與OpenSSL有關聯,但實際上這兩個計畫有不同的目的,不同的發展團隊,名稱相近只是因為兩者有同樣的軟體發展目標──提供開放原始碼的加密通訊軟體。
歷史
OpenSSH是在1999年10月第一次在OpenBSD 2.6裡出現,當初的計畫是取代由SSH Communications Security所提供的SSH軟體。
發展及程式架構
程式主要包括了幾個部份:
- ssh
- rlogin與Telnet的替代方案。
- scp、sftp
- rcp的替代方案,將檔案複製到其他電腦上。
- sshd
- SSH伺服器。
- ssh-keygen
- ssh-agent、ssh-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端口
另請參閱
參考文獻
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.