ssh命令允许用户使用SSH协议安全地访问远程系统,以下的ssh命令将使用用户名user01登录远程服务器remotehost。
[user@host ~]ssh user01@remotehost
SSH主机密匙
SSH通过公钥加密的方式保持通信安全。当某一SSH客户端连接到SSH服务器时,在该客户端登
之前,服务器会向其发送公钥副本。这可用于设置通信渠道的安全加密,并且可以验证客户端的服务器;当用户使用ssh命令连接到SSH服务器时,该命令会检查它在本地已知主机文件中是否有该服务器的公钥副本,系统管理员可能在etc/ssh/ssh_known_hosts 中进行预配置,或者用户的主目录中可能有一个包含公钥的~/.ssh/known_hosts文件。
基于SSH密钥的身份验证
可以使用如下命令生成进行身份验证的私钥和匹配的公钥:
默认情况下,私钥和公钥分别保存在~/.ssh/id_rsa和~/.ssh/id_rsa.pub中,用户可以在创建密钥的时候指定文件名
ssh-keygen
使用如下命令生成受密语保护的私钥及其公钥,并指定保存密钥的文件:
此时私钥和公钥分别保存在~/.ssh/key-with-pass和~/.ssh/key-with-pass.pub文件中
ssh-keygen -f .ssh/key-with-pass
复制公钥到目标系统上
ssh-copy-id -i .ssh/key-with-pass.pub user@remotehost
在ssh-keygen提示是指定密语,生成的私钥受到保护,但是在这种情况下进行身份验证的时候需要输入密语,也不安全。可以运行ssh-agent帮助程序以实现真正的无密码身份验证
[user@host ~]eval $(ssh-agent)
agent pid 10155
[user@host ~]ssh-add
[user@host ~]ssh-add .ssh/key-with-pass