热门问题
时间线
聊天
视角
OpenSSH
Secure Shell (ssh) 協定的客戶端與伺服器 来自维基百科,自由的百科全书
Remove ads
OpenSSH(OpenBSD Secure Shell)是使用SSH通過計算機網路進行加密通訊的實現。它是取代由SSH Communications Security開發的商用版本的開放原始碼方案。目前OpenSSH是OpenBSD的一個子計畫。
OpenSSH常常被誤認為與OpenSSL有關聯,但實際上這兩個計畫有不同的目的,不同的發展團隊,名稱相近只是因為兩者有同樣的軟體發展目標──提供開放原始碼的加密通訊軟體。
Remove ads
歷史
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子目錄中的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。
另請參閱
參考文獻
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads
