ssh免密登录linux
一、远程linux 创建 用户设置密码
adduser username #添加用户名 passwd username #添加登录密码,适合adduser之后没提示设置密码的情况
vi /etc/sudoers (给用户设置root 权限 sudo su -),如不想设置root权限也可跳过该步骤
# User privilege specification root ALL=(ALL) ALL username ALL=(ALL) ALL #此句为添加语句
二、在客户端电脑生成公钥私钥
如果客户端已有公钥私钥可跳过该步骤
ssh-keygen -t rsa #然后一路回车即可
执行完该命令,会在 ~/.ssh 文件夹下生成 id_rsa和id_rsa.pub
三、把公钥传到要登录的linux 账户
把~/.ssh/id_rsa.pub 文件发送到服务器指定账户的authorized_keys中,这样以后用指定的用户名登录该服务器就不在需要输入密码
ssh-copy-id -i ~/.ssh/id_rsa.pub username@host -p 22
接下来即可免密登录linux
ssh username@host -p 22
注意:authorized_keys权限不能太大
chmod 600 authorized_keys
四、客户端配置别名登录
vim ~/.ssh/config
Host haha HostName host User username Port 22 # PreferredAuthentications publickey # IdentityFile ~/.ssh/id_rsa
#设置指定认证方式,可加快连接速度
#如果客户端有多对秘钥,也可通过该方式指定
接下来登录服务器只需要输入:
ssh haha
五、采坑
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)
一般情况下不会遇到以下问题,如果遇到了多半是因为服务器上的权限有问题,服务器上的~/.ssh/authorized_keys有严格的权限,过高过低都不行
chmod 700 /home/username #设置用户权限 chmod 700 ~/.ssh #设置ssh 权限 chmod 600 ~/.ssh/authorized_keys #设置 authorized_keys 权限
如果是新创建的用户,没做过权限修改一般不会遇到这个问题
网上有说 修改sshd_config 可以参考,
sudo vim /etc/ssh/sshd_config PubkeyAuthentication yes PasswordAuthentication yes #用root用户登入 PermitRootLogin yes sudo systemctl restart sshd
笔者尝试修改该没什么作用,放这做个参考吧
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2018-08-20 ngnix优化【转】
2018-08-20 golang中的make与new
2018-08-20 linux修改文件权限