1. 使用口令登陆bash
口令登陆是SSH最经常使用的登陆方式。其登陆流程大体以下:服务器
1)客户端 向 远程服务器 发起SSH请求,远程服务器 返回RSA公钥ssh
2)客户端 输入帐号密码使用RSA公钥加密,并把密文传输到 远程服务器加密
3)远程服务器 使用RSA私钥解密,并验证帐号和密码code
4)登陆成功后,客户端 把RSA公钥保存到 ${HOME}/.ssh/known_hosts 文件中字符串
2. 无密码登陆class
客户端 无密码登陆到 远程服务器,其原理大体以下:登录
1)客户端 向 远程服务器 发起SSH请求,远程服务器 返回一个随机字符串原理
2)客户端 使用RSA私钥加密随机字符串,并把密文传输到 远程服务器配置
3)远程服务器 使用 客户端 提供的RSA公钥,解密密文并验证身份
配置步骤:
1)在 客户端 生成RSA密钥对
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
执行指令后,会在 ${HOME}/.ssh 目录下生成 id_rsa(私钥)和 id_rsa.pub(公钥)两个文件
2)复制 客户端 RSA公钥到 远程服务器
# 方法一 # 把 客户端 的 ${HOME}/.ssh/id_rsa 公钥文件,复制到 远程服务器 ${HOME}/.ssh 目录 scp ${HOME}/.ssh/id_rsa '{用户}@{远程服务器}':${HOME}/.ssh # 登陆 远程服务器,建立 ${HOME}/.ssh/authorized_keys 文件(若是有就不用新建) touch ${HOME}/.ssh/authorized_keys # 修改文件权限 chmod 0600 ${HOME}/.ssh/authorized_keys # 把 客户端 的RSA公钥加入到authorized_keys(不要把文件清空,只加到文件末尾) cat ${HOME}/.ssh/id_rsa.pub >> ${HOME}/.ssh/authorized_keys
# 方法二 # 在 客户端 上使用 ssh-copy-id 命令,把公钥复制到 远程服务器 ssh-copy-id '{用户}@{远程服务器}'
3)完成上面两步后,在 客户端 上就能够无密码登陆 远程服务器 了
4)客户端 若须要无密码登陆多台 远程服务器,只须要重复步骤2,把公钥复制到相应的 远程服务器 便可。