OpenSSH

OpenSSH（）是使用SSH透過計算機網路加密通訊的實現。它是取代由SSH Communications Security所提供商用版本的開放原始碼方案。目前OpenSSH是OpenBSD的子計畫。

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

歷史 
OpenSSH是在1999年10月第一次在OpenBSD 2.6裡出現，當初的計畫是取代由SSH Communications Security所提供的SSH軟體。

發展及程式架構 
程式主要包括了幾個部份：
 ssh
 與Telnet的替代方案。
 scp、sftp
 rcp的替代方案，將檔案複製到其他電腦上。
 sshd
 SSH伺服器。
 ssh-keygen
 產生RSA或ECDSA金鑰，用來認證用。
 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端口

另请参阅
lsh

参考文献

外部連結 
 OpenSSH 
 Windows操作系统可用的OpenSSH版本 

加密软件
自由跨平台軟體
自由網路軟體
OpenBSD
Secure Shell
Windows命令