Linux SSH登陆原理

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,把公钥复制到相应的 远程服务器 便可。

相关文章
相关标签/搜索