OpenSSH

Secure Shell (ssh) 協定的客戶端與伺服器

OpenSSHOpenBSD Secure Shell)是使用SSH透过电脑网络加密通讯的实现。它是取代由SSH Communications Security所提供商用版本的开放原始码方案。目前OpenSSH是OpenBSD的子项目。

OpenSSH
"Keeping your communiqués secret"
"Keeping your communiqués secret"
开发者OpenBSD项目组
首次发布1999年12月1日,​24年前​(1999-12-01
当前版本
  • 9.7 (2024年3月11日;稳定版本)[1]
编辑维基数据链接
原始码库 编辑维基数据链接
编程语言C语言
操作系统跨平台[2]
标准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[3]
类型远程访问
许可协议简化版BSD许可证
ISC许可证
公共领域
网站www.openssh.com/ 编辑维基数据

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 -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端口

另请参阅

参考文献

  1. ^ 1.0 1.1 release-9.7. 
  2. ^ OpenSSH Portable Release. OpenBSD. [15 October 2015]. (原始内容存档于2018-02-16). 
  3. ^ Specifications implemented by OpenSSH. The OpenBSD Project. The OpenBSD Project. [14 October 2015]. (原始内容存档于2018-01-25). 

外部链接