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
复制代码

笔者尝试修改该没什么作用,放这做个参考吧

 

posted @   .追风逐月  阅读(375)  评论(0编辑  收藏  举报
编辑推荐:
· 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修改文件权限
点击右上角即可分享
微信分享提示