Linux SSH登录原理

本文详细介绍了如何通过SSH实现从客户端到远程服务器的无密码登录配置过程,包括使用RSA密钥对进行身份验证的方法。文章分为两部分,首先解释了常见的口令登录流程,然后重点介绍了无密码登录的原理及配置步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 使用口令登录

154344_2w34_68887.png

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

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

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

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

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

2. 无密码登录

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

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

转载于:https://my.oschina.net/nk2011/blog/778623

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值