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 @ 2020-08-20 14:13  .追风逐月  阅读(372)  评论(0编辑  收藏  举报