什么是SSH
SSH(Secure Shell,安全外壳)是一种网络安全协议,通过加密和认证机制实现安全的访问和文件传输等业务。
什么是OPENSSH
OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此来代替原来的类似服务。
配置基于SSH密钥的身份验证
使用ssh-keygen命令生成SSH密钥,默认情况下,私钥和公钥分别保存在~/.ssh/id_rsa和~/.ssh/id_rsa.pub文件中。
如果在创建密钥时未指定密语,则生成的私钥不受保护,在这种情况下,任何拥有我们私钥文件的人都可以使用它进行身份验证。如果设置了密码,则在使用私钥进行身份验证时需要输入此密语。使用-f选项可以指定保存密钥的文件。
使用ssh-copy-id命令共享公钥,它可以将SSH密钥对的公钥复制到目标系统,如果运行此命令时省略了公钥文件的路径,他会使用默认的/home/user/.ssh/id_rsa.pub文件。使用-i指定公钥文件路径。
此时要手动输入密语还是不够安全,我们可以运行一个名为ssh-agent的帮助程序,它可以在会话开始时临时将我们的私钥密语缓存到内存中,以实现真正的无密码身份验证。一旦ssh-agent开始运行,我们需要告诉它我们的私钥密语或密钥,此时可以使用ssh-add命令