OpenSSH

OpenSSH(**')是使用SSH通过計算機網路进行加密通訊的實現。它是取代由SSH Communications Security开发的商用版本的開放原始碼方案。目前OpenSSH是OpenBSD的一个子計畫。

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

歷史
OpenSSH第一次出現是1999年10月随OpenBSD 2.6发布,最初是为了取代由SSH Communications Security所提供的SSH軟體。

發展及程式架構
程式主要包括了幾個部份:

  • ssh

: 與Telnet的替代方案。

  • scpsftp

: rcp的替代方案,將檔案複製到其他電腦上。

  • sshd

: SSH伺服器。

  • ssh-keygen

: 生成RSA或ECDSA金鑰,用于进行認證。

  • 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 ,但在Windows上可能会遇到问题。如果本地脚本带有命令行参数,需要使用类似这样的格式:ssh username@host 'bash -s'

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。
另请参阅
*lsh

参考文献
外部連結

评论 (0)

  • 还没有评论,来抢沙发吧。