OpenSSH是一个实现SSH协议的软件,它主要分为两个端:SSH Server和SSH Client。
约定:以下所指的“连接”都指“SSH连接”。
一、SSH Server
用来提供SSH服务。
重要的有两个部件,分别是“sshd程序”和“sshd_config文件”。
“sshd程序”是SSH Server的“daemon程序”,“sshd_config文件”是“sshd程序”使用的配置文件。
二、SSH Client
用来请求SSH服务。
重要的有两个部件,分别是“ssh程序”和“ssh_config文件”。
“ssh程序”是SSH Client的客户程序,“ssh_config文件”是“ssh程序”使用的配置文件。关于“ssh程序”,可见《ssh命令》。关于“ssh_config文件”,可见《ssh_config配置文件》。
三、其他
另外,OpenSSH还有一个处理密钥相关内容的机制,在这个机制中主要有以下这些内容:
3.1、“ssh-keygen程序”用于创建,管理,转换密钥
“ssh-keygen程序”是用来创建,管理和转换密钥的工具。详细内容见《ssh-keygen命令》。
3.2、配置密钥用于建立SSH连接
为了让SSH Client能够以xxx用户身份连接到SSH Server,需要经过以下步骤:
- 使用“ssh-keygen程序”创建公钥私钥对
- 将公钥的内容追加到SSH Server所在主机的“/home/xxx/.ssh/authorized_keys”文件中
- 将私钥分发给所有有权以xxx用户身份连接到SSH Server的SSH Client
3.3、管理可信任SSH Server的Host Key
当SSH Client连接SSH Server的时候,会将SSH Server所在主机的Host Key追加保存到SSH Client所在主机的“/home/xxx/.ssh/known_hosts”文件中,下次当该SSH Client再次连接同一个(IP地址或者域名一样)SSH Server的时候,会去判断两次连接中SSH Server所在主机的Host Key是否一致,如果不一致,很有可能存在中间人攻击。