首页 > 其他分享 >SSH免密登录的配置

SSH免密登录的配置

时间:2022-08-29 13:12:17浏览次数:75  
标签:免密 登录 公钥 Client SSH Server id ssh

ssh登录

登录ssh一般情况有两种方法
  • 密码登录
  • 秘钥登录(免密)
大部分情况我们选择都是输入密码登录,平常使用暂时没有遇到什么问题。最近我编写了一些使用scp来传输文件的脚本,每一次scp都需要输入密码,甚是麻烦。又或者是服务器集群需要多台服务器的通信等,这个时候免密登录就至关重要了。 0

基本原理

免密登录的原理大概了解一下就可以啦,Client即需要免密登录的客户端,Server表示被免密登录的服务器,本文后续也以此命名。
Client生成密钥对并将公钥发给Server,Server将公钥保存; Client要登录Server时,Server生成随机字符串并用Client的公钥加密后,发给Client; Client用私钥将其解密后发回给Server,验证成功后登录。
在Server的秘钥文档~/.ssh/authorized_keys有Client的公钥文件id_<加密算法>.pub的条目,这个时候Client可以免密登录上Server了。图中以rsa为例。 0

Client秘钥

在Client生成公钥和私钥,只需要:
ssh-keygen
后面一直按回车就可以啦
当然ssh-keygen也有一些参数可选
  • -t 选择密钥类型,可选dsa、ecdsa、ed25519、rsa(默认)
  • -b 指定生成的密钥的大小,单位字节Byte
  • -C 生成密钥的描述信息,默认内容是user@hostname。(会追加到公钥.pub 内容的末尾)
  • -f 选择文件输出名字或路径
  • -N 指定新密码,'' 表示密码为空
  • -q 快速生成,不而外显示内容在终端
 ssh-keygen -t ed25519 -b 2048
0 在完成ssh-keygen后私钥和公钥文件生成在~/.ssh中(Windows在C:\Users\用户名\.ssh中)。
  • 私钥:id_ <加密算法>
    • id_rsa、id_dsa、id_ed25519、id_ecdsa
  • 公钥:id_<加密算法>.pub
    • id_rsa.pub、id_dsa.pub、id_ed25519.pub、id_ecdsa.pub
0

Server授权

Client生成的公钥,我们需要追加在Server的文件~.ssh/authorized_keys末尾。免密登录,可以存放多条。 可以使用ftp、sftp(scp命令)、http(wget、curl)等多种方法将Client公钥追加在Server授权authorized_keys文件中。也可以直接使用ssh-copy-id。 在Client执行ssh-copy-id <sever的ip>
ssh-copy-id [email protected] -p 22
0 只要把Client的公钥追加到Sever的authorized_keys就可以了,哪怕你ssh连接进去vim authorized_keys粘贴效果也一样的。 0 对了随便说一下,know_hosts : 已知的主机公钥清单

请注意权限问题:

  • ssh目录的权限必须是700(即rwx------)
chmod 700 ~/.ssh
0
  • .ssh/authorized_keys文件权限必须是600(即rw------)
chmod 600 ~/.ssh/authorized_keys
0
  • 将sshd服务重新启动一下,退出登录,发现已经生效了,不需要输入密码登录。
systemctl restart sshd.service
0

命令总结

#Client中
ssh-keygen -t [dsa|ecdsa|ed25519|rsa] -d 2048
ssh-ssh-copy-id root@ip -p 22

 

#Sever中
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
systemctl restart sshd.service

标签:免密,登录,公钥,Client,SSH,Server,id,ssh
From: https://www.cnblogs.com/alittlemc/p/16635607.html

相关文章

  • Angular+Ionic 禁止手机自带返回返回登录页
    使用场景:手机登录后静止手机自带的返回按钮返回登录页解决方式:使用Angular路由中的路由守卫进入守卫canActivate();默认所有人都可进入路由,当需要限制进入路由时就可......
  • SSH命令权限不足
    ssh:errorwhileloadingsharedlibraries:libcrypto.so.1.1:cannotopensharedobjectfile:Nosuchfileordirectory-bash:/usr/bin/ssh:权限不够处理其它问......
  • 【Qt6.2.4】qml 实现登录注册及显示详情demo
    参考https://www.bilibili.com/video/BV1dS4y1u7vN?spm_id_from=333.999.0.0(很棒的教程)环境环境版本windows10QT6.2.4QtCreator8.0.1(Community......
  • Python Selenium使用cookie实现自动登录微博
    @目录前言一、预登陆获取cookie1)cookie处理2)预登陆二、登录测试前言模拟登录微博是实现微博网页爬虫的第一步,现在的微博网页版有个sinavisitsystem,只有登录过后才......
  • Chapter2 登录和注册_页面之间的数据传递_云储存
    Chapter21.登录和注册(手机验证)1.1我的页面app.jsApp({​ /** *当小程序初始化完成时,会触发onLaunch(全局只触发一次) */ onLaunch:function(){......
  • xshell ssh隧道做socket代理上网
    一、xshellxshell选择想要访问的会话右键属性 ssh隧道添加连接打开隧道窗格转移规则 发现已打开二、火狐附加组件搜索添加组件 SwitchyOmega设置......
  • 微信授权登录,并验证微信用户手机号
    1.前端发起请求//验证微信用户绑定的手机号checkWXPhoneNumber(){ uni.request({ url:this.$C.company.apiHttps+'api/v1/user/check_phone', method:'POST', ......
  • 不登录的前提下,如何复制csdn代码
    按F12。部分电脑需要Fn+F12。点开上方的console,即控制台。复制命令:document.body.contentEditable="true",然后回车。再按一次F12,退出源代码检查模式......
  • selenium使用cookie登录百度网页
    1.首先我们先来了解下cookie的几种方法get_cookies():获取所有cookie值get_cookie(name):根据cookie的name值获取对应的value值get_all_cookies:删除所有cookieget_delete......
  • KingbaseES V8R6集群维护案例之---将securecmdd通讯改为ssh案例
    案例说明:在KingbaseESV8R6的后期版本中,为了解决有的主机之间不允许root用户ssh登录的问题,使用了securecmdd作为集群部署分发和通讯的服务,有生产环境通过漏洞扫描,在8890(se......