天天看点

Linux SSH登录原理

1. 使用口令登录

Linux SSH登录原理

    口令登录是SSH最常用的登录方式。其登录流程大致如下:

    1)客户端 向 远程服务器 发起SSH请求,远程服务器 返回RSA公钥

    2)客户端 输入账号密码使用RSA公钥加密,并把密文传输到 远程服务器

    3)远程服务器 使用RSA私钥解密,并验证账号和密码

    4)登录成功后,客户端 把RSA公钥保存到 ${HOME}/.ssh/known_hosts 文件中

2. 无密码登录

Linux SSH登录原理

    客户端 无密码登录到 远程服务器,其原理大致如下:

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

版权声明:本文为CSDN博主「weixin_34185512」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_34185512/article/details/91835744

继续阅读