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). 

      外部链接[编辑]