密码登录: A通过ssh连接服务器B时: A B ssh请求 1 发送公钥rsa.pub(B) 2 将公钥rsa.pub(B)追加保存到~/.ssh/know-hosts 利用公钥rsa.pub(B)将密码加密 3 将加密后的密码通过私钥rsa(B)解密比对 发送通过或拒绝信号 4 A B 风险:存在中间人攻击风险,假冒B服务器发送公钥给A的情况,这将窃取A的登录用户及密码信息 公钥登录: A通过ssh连接服务器B时: A B $ ssh-keygen,生成rsa.pub(A)与rsa(A),保存在~/.ssh/中 $ ssh-copy-id <user>@<host> 1 或登录B后将rsa.pub(A)追加到~/.ssh/authorized_keys ssh请求 2 发送随机字符串 3 用私钥rsa(A)对字符串加密 发回加密后字符串 4 用公钥rsa.pub(A)对字符串解密,并比对 发送通过或拒绝信号 5 A B 对于没有ssh-copy-id的情况 :(不适用于CMD) cat ~/.ssh/id_rsa.pub | ssh user@machine “mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys”